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
这样程序顺利执行了


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





你可能感兴趣的:(dos)