我有一个windows批处理脚本,由调度程序每隔1小时执行一次。
我希望批处理脚本中的某些行仅在调度程序执行批处理脚本10次时才执行。
myscript.bat示例
@echo off
echo hello world希望在每执行10次批处理脚本(myscript.bat)后打印以下行。
echo This text will appear after repeating "hello world" for 10 times.
任何帮助都将不胜感激!!
发布于 2017-09-01 19:11:25
您可以通过在批处理文件中使用循环语句来完成此操作
例如:-如果你想打印hello world 10
FOR /F %i IN (1,1,10) DO echo hello_world发布于 2017-09-01 19:51:49
您需要创建一个文件,因为脚本一直在执行和退出,实际上是每小时执行一次。
@echo off
echo Hello World
echo Hello World >> lockfile.txt
setlocal EnableDelayedExpansion
set "string=findstr /R /N "^^" lockfile.txt | find /C "Hello""
for /f %%a in ('!string!') do set number=%%a
echo %number%
IF "%number%"=="10" (ECHO Success! && del /Q lockfile.txt)为了解释..。我们回显Hello world,纯粹是为了让你在屏幕上看到它。每次执行脚本时,我们都会将Hello world回显到锁文件中。我们计算文件中的行数,一旦达到10行(在本例中为10次执行,然后回显Success并删除锁文件)。删除锁定文件的原因纯粹是为了确保我们不会超过10计数
因此,您希望在hello world回显10次之后运行的所有命令都适用于您的IF语句的一部分。希望这能有所帮助。
https://stackoverflow.com/questions/45998412
复制相似问题