以下是我的要求.
@echo off
cls
Set Sleep=0
:start
echo This is a loop
xx.exe yyyyy.dll /p:InputDataSource=Table:table.xml
Set /A Sleep+=1
echo DisplayingSleepvalue
echo %Sleep%
goto start
Run Code Online (Sandbox Code Playgroud)
在这里,我想要执行xx.exe yyyyy.dll /p:InputDataSource=Table:table.xml
此行30次 ....任何人都可以帮助我.
谢谢,
Manasa
试试这种方式: -
@echo off
cls
Set Sleep=0
:start
if %Sleep% == 30 ( goto end )
xx.exe yyyyy.dll /p:InputDataSource=Table:table.xml
echo This is a loop
Set /A Sleep+=1
echo %Sleep%
goto start
:end
echo "am 30 now"
pause
Run Code Online (Sandbox Code Playgroud)
您可以使用带递增计数器的GOTO循环,但FOR/L循环更有效.
for /l %%N in (1 1 30) do someCommand
Run Code Online (Sandbox Code Playgroud)
通过键入HELP FOR
或FOR /?
从命令行学习可用的文档.
如果要重复整个代码块,请将块括在括号中.您可以使用FOR %% N变量代替Sleep变量.
@echo off
cls
for /l %%N in (1 1 30) do (
echo This is a loop
xx.exe yyyyy.dll /p:InputDataSource=Table:table.xml
echo DisplayingSleepvalue
echo %%N
)
Run Code Online (Sandbox Code Playgroud)
您的示例不需要它,但如果您想在循环中操作环境变量,则必须使用延迟扩展.正常扩展%sleep%
仅在解析整个循环时扩展一次,而您需要!sleep!
在执行时为每个循环迭代扩展该值.必须先启用延迟扩展才能使用.
@echo off
setlocal enableDelayedExpansion
cls
set sleep=0
for /l %%N in (1 1 30) do (
echo This is a loop
xx.exe yyyyy.dll /p:InputDataSource=Table:table.xml
set /a sleep+=1
echo DisplayingSleepvalue
echo !sleep!
)
Run Code Online (Sandbox Code Playgroud)