windows - 使用别名运行循环
问题描述
我希望能够在命令控制台中手动键入“别名”关键字,并让它执行以下命令指定次数。
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 循环命令需要双百分比字符,但我仍然不知道在键入指定的“别名”关键字时使用什么语法来运行循环命令。
解决方案
从命令行:
注意:>
在行首表示提示。
>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 次。运行宏显示在命令行示例中。
推荐阅读
- c# - 使用命名空间而不是嵌套类?
- drake - 记录多个 meshcat 可视化工具
- zeromq - Apache Storm 消息传递实现 (MPI)
- apache - 在 htaccess 中使用查询字符串缓存控制静态资产
- python - 包 __init__.py 导入所有子文件,但只从另一个脚本加载一个?
- python - 将一些数据帧信息传输到新矩阵
- jquery - Ajax 与 jquery 验证不显眼和部分视图
- hl7-fhir - FHIR v5.0 规范发布了吗?
- javascript - js如何转成字符串
- java - HTTPS请求的Spring Boot RestTemplate问题