先日も色々と試行錯誤しましたが、目的によってはシンプルな方法で解決する方法もありました。
dirコマンドにPathを渡したい場合はカレントディレクトリを指定すればOK。
パラメータだけ変えて同じコマンドを複数回実行したい場合、パラメータまでバッチファイルに記入してしまうと毎回バッチファイルを出力しなければいけなくなってしまいますが、以下のような方法でも問題なく動作しました。
パラメータだけ変えて同じコマンドを複数回実行したい場合、パラメータまでバッチファイルに記入してしまうと毎回バッチファイルを出力しなければいけなくなってしまいますが、以下のような方法でも問題なく動作しました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
async function 空いてるport番号を返す(): Promise<number>{ | |
let pathBat = await 一時ファイルを作成('netstat -na | find "%~1"') | |
for(let port=49152; port<=65535 ;port++){ | |
const p = Deno.run({cmd:['cmd', '/C', 'chcp 65001 & '+pathBat+' ' + port], stdout:'piped'}) | |
const o = await p.output() | |
const text = new TextDecoder().decode(o) | |
if(text.indexOf(':'+port)==-1){ | |
Deno.remove(pathBat) | |
return port | |
} | |
} | |
throw new Error('throw from port num search') | |
} | |
async function 一時ファイルを作成(value:string){ | |
const path = await Deno.makeTempFile({prefix: 'deno_tmp', suffix:'.bat'}) | |
await Deno.writeTextFile(path, value) | |
return path | |
} | |
const port = await 空いてるport番号を返す() | |
console.log(port) |
0 件のコメント:
コメントを投稿