首页 > 解决方案 > 使用别名运行循环

问题描述

我希望能够在命令控制台中手动键入“别名”关键字,并让它执行以下命令指定次数。

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

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

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

它适用于像回显文本这样的简单命令,但是当我运行以下命令时(没有>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 循环命令需要双百分比字符,但我仍然不知道在键入指定的“别名”关键字时使用什么语法来运行循环命令。

标签: windowsbatch-filecmddoskey

解决方案


从命令行:

注意:>在行首表示提示。

>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。使用参数 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 次。运行宏显示在命令行示例中。


推荐阅读