2

コマンド コンソールに「エイリアス」キーワードを手動で入力して、次のコマンドを指定した回数だけ実行できるようにしたいと考えています。

taskkill /PID "%PID%" /f >nul 2>&1

ループを実行する次のコマンドを見つけました。

for /l %x in (1, 1, 5) do

テキストのエコーなどの単純なコマンドでは問題なく動作しますが、次のコマンドを実行すると (このテストのためだけに>nul 2>&1を使用しません)

for /l %x in (1, 1, 5) do taskkill /PID "%PID%" /f

同じコマンドをさらに4回繰り返すのではなく、1回で停止します(「成功」メッセージが表示されます)。

各インスタンスの後に停止することなく、コマンドを複数回実行するにはどうすればよいですか?

そして、それが達成されたら、どうすればエイリアスからそのコマンドを実行できますか?

コマンドをバッチ ファイルに入れるときに、特定の文字をエスケープする必要があることを理解しています。

set "close=taskkill /PID "%PID%" /f >nul 2>&1"
doskey close=taskkill /PID "%PID%" /f ^>nul 2^>^&1

%x ループ コマンドには 2 つのパーセント文字が必要ですが、指定された「エイリアス」キーワードが入力されたときにループ コマンドを実行するために使用する構文はまだわかりません。

4

1 に答える 1

1

コマンドラインから:

注:>はプロンプトを表すために行頭にあります。

>doskey close=for /l %x in (1, 1, 5) do taskkill /pid ^%pid^% /f
>set "pid=10"
>close

使用する doskey マクロを設定すること%pid%です。pid値を設定し10てマクロを実行します。

>doskey close=for /l %x in (1, 1, 5) do taskkill /pid $1 /f
>close 10

doskey マクロを設定して、第 1 引数を pid として使用することです。引数 ie を使用してマクロを実行します10


バッチ ファイルから doskey を設定するには:

doskey close=for /l %%x in (1, 1, 5) do taskkill /pid %%pid%% /f

または、pid を渡す引数として設定します。

doskey close=for /l %%x in (1, 1, 5) do taskkill /pid $1 /f

最初の 2 つのコマンドラインの例のようにマクロを実行します。


マクロ内のコマンドは 5 回実行されます。マクロの実行は、コマンドラインの例に示されています。

于 2018-11-14T04:30:28.423 に答える