[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
首先:不用这么多的临时文件。
if %a%==ar2p.exe 你的错误在这一句,%a%的值永远是2.txt最后一行的内容。
所以它很难 goto 2  除非正好ar2p.exe 排在最后一个
但是不循环的原因却不在此。
if /i "%a%"=="ar2p.exe" goto 2 这样应该就可以循环了。
find /i "ar2p.exe" c:\1.txt >c:\2.txt 这一句。
如果没有ar2p.exe,那么也就不会有2.txt文件了
如果没有2.txt那么%a%也就是空值了,
此时if %a%==ar2p.exe 就等于是if ==ar2p.exe 也就是语法错误了,当然也就退出了。
:
  1. @echo off
  2. :1
  3. for /f "skip=2 tokens=1" %%i in ('tasklist') do (
  4.   if /i "%%i"=="ar2p.exe" goto 2
  5. )
  6. goto 1
  7. :2
  8. shutdown -s -t 10
复制代码
技术问题请到论坛发帖求助!

TOP

回复 4楼 的帖子

可以不要,加空格只是为了书写美观和便于查看。当代码很长时,就体现好处了。
技术问题请到论坛发帖求助!

TOP

返回列表