我正在尝试编写批处理脚本以在10个不同的命令提示中运行无限循环,但这似乎不能正常工作。它打开命令提示并消失,我已经发布了下面的脚本请让我知道问题究竟在哪里。
for /l %%x in (1, 1, 10) do (
start cmd /c ":up echo loop && goto up"
)
答案 0 :(得分:4)
for /l %%a in (0) do start "%~f0"
答案 1 :(得分:3)
我认为有两个问题阻碍了你想要的功能。
:label
,输入其他一些行,然后输入转到label
。然后你就不会进入循环!)当我用于 caller.cmd 时:
for /l %%x in (1, 1, 10) do (
start cmd /c test.cmd
)
和 test.cmd :
:up
echo loop
goto up
它有效(至少对我而言......)
即使我用于 test.cmd :
:up
echo loop && goto up
它有效。但是,每个控制台都会显示loop && goto up
而不是loop
!
当我写这篇文章时,马丁已经给出了同样的回答。也许这对你来说足够令人信服。
答案 2 :(得分:2)
您的批处理无效,因为标签在命令之前需要新行,而您在&
之后甚至没有:up
。我会这样做:
If Not %1.==. GoTo :Up
For /L %%i In (1,1,10) Do Start "%~nx0 %%i" Cmd /C %0 %%i
GoTo :EOF
:Up
Echo %1
GoTo :Up
答案 3 :(得分:1)
我会在2个不同的批处理文件中执行此操作。
1个文件是启动,并打开第2批10次。
在第二批你将完成你想做的任何工作。
批次1(start.bat):
for /l %%x in (1, 1, 10) do (
start "loop" loop.bat
)
pause
批次2(loop.bat):
REM Whatever work you want to be looping, for testing I have left it as a pause.
pause
然后只需运行start.bat,您将看到它使用pause命令打开10个新的命令窗口。
马丁