使用别名运行循环

时间:2018-11-14 02:35:07

标签: windows batch-file cmd doskey

我希望能够在命令控制台中手动键入“ alias”关键字,并使其执行以下命令指定的次数。

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

我发现此命令将运行一个循环:

对于(l,1,5)中的/ l%x做

它对于诸如回显文本之类的简单命令正常工作,但是当我运行以下命令时(仅出于测试目的而没有> nul 2>&1

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

它会在一次(显示“成功”消息)后停止,而不是再重复执行同一命令4次。

如何使命令多次执行而又不会在每个实例之后停止?

一旦实现,如何从别名运行该命令?

我了解到将命令放入批处理文件时需要转义某些字符

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

,%x循环命令将需要使用双百分号字符,但是我仍然不知道在键入指定的'alias'关键字时使用哪种语法来运行循环命令。

1 个答案:

答案 0 :(得分: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宏以使用第一个参数作为pid。 使用参数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

像第1个2命令行示例一样执行宏。


宏中的命令将运行5次。 运行宏显示在命令行示例中。