| 管道符号。表示把前面命令的输出作为后面命令的输入。比如 echo abc|find "a" 表示把 echo 的输出结果abc字符串作为 find "a" 的搜索对象;
&& 连接符号。如果前面的语句执行成功,则执行后面的语句;
|| 连接符号。和 && 的意思正好相反,表示如果前面的语句执行失败,就执行后面的语句。
你在『第 3 楼』的代码存在如下几个错误:
1、如果成功关闭了 xxx.exe ,那么,echo %%i进程被结束 这一句执行之后,因为它之后再没有跳转语句,所以会继续执行 :end 标签段的内容;
2、因为 %%i 是 for 语句中的变量,一旦for语句执行完毕之后,就不能再用 %%i 的格式来引用变量,而应换成百分号对中夹字符的%var%格式;
另外,如果当前进程中没有你find的内容,for语句将没有任何输出,用空字符串来判断的方法好象不太成功,原因暂时还位找到。以下语句应该可以满足你的需求:
@echo off
tasklist|find /i "qq.exe">nul && (
taskkill /f /T /im "qq.exe">nul
echo 进程 qq.exe 被结束
) || (
echo 没有发现进程 qq.exe
)
pause