【发布时间】:2023-03-27 09:47:01
【问题描述】:
我们在产品中有代码,用于检查文件属性(check.bat file1.bin 的结果返回 0 或 1)并在必要时重新启动用户进程(如果返回 1,则重新启动进程)。代码工作正常,但我只是想问有没有办法用 FOR 循环来改进它,因为我们确实每个循环都做同样的事情,但是 +1 到用户名、任务名称和文件名
@echo off
:cycle1
FOR /F "tokens=* USEBACKQ" %%F IN (`check.bat file1.bin`) DO (SET var=%%F )
if %var% == 1 (taskkill /f /fi "USERNAME eq user1" & SCHTASKS /RUN /TN "task1")
goto cycle2
:cycle2
FOR /F "tokens=* USEBACKQ" %%F IN (`check.bat file2.bin`) DO (SET var=%%F )
if %var% == 1 (taskkill /f /fi "USERNAME eq user2" & SCHTASKS /RUN /TN "task2")
goto cycle3
:cycle3
FOR /F "tokens=* USEBACKQ" %%F IN (`check.bat file3.bin`) DO (SET var=%%F )
if %var% == 1 (taskkill /f /fi "USERNAME eq user3" & SCHTASKS /RUN /TN "task3")
goto eof
:eof
exit /b 0
【问题讨论】:
-
你想无限地增加数字,还是只循环从数字 1 到 3?
标签: windows for-loop batch-file