dos中for in后面执行多个命令的方法

dos中for命令算是一个复杂的命令了,但是也能给我们实现一些复杂的操作

最近在写dos命令的时候有这样一个需求:

查找windows中的某个进程,并通过dos命令taskkill结束该进程:

本来思路是这样的:通过tasklist命令列出所有的进程,通过管道命令传给find找到该进程,通过for命令在返回的信息中找到进程号,然后结束该进程,最后写出了这样的语句:

for /f " tokens=2 delims= " %%i in ('taskkill | find "java.exe"') do taskkill /f /pid %%i
结果发现执行的时候出错,原因在于in后面只能跟单个的命令,多个命令组合就会出错(大概是不支持多个命令组合在一起)

解决的办法:

将  

taskkill | find "java.exe

语句写入一个bat文件,比如findpro.bat

然后将语句这样写:

for /f " tokens=2 delims= " %%i in ('findpro.bat') do taskkill /f /pid %%i
这样程序顺利执行了


这只是自己在使用过程中想到的一些方法,如果由更好的方法希望大家能够提出意见,多多交流


最近再更新一个方法:

@echo off
for /f "tokens=2 delims=:" %%i in ('dir/L^|find "itools"')do @echo %%i

pause

从当前目录中查找itools的文件或目录





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值