Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何通过命令行参数成批执行while循环_Windows_Loops_Batch File_Cmd - Fatal编程技术网

Windows 如何通过命令行参数成批执行while循环

Windows 如何通过命令行参数成批执行while循环,windows,loops,batch-file,cmd,Windows,Loops,Batch File,Cmd,我试图通过命令行参数运行批处理脚本,以避免每次需要时都将批处理脚本写入文件 示例批处理脚本是 :loop timeout /t 1 goto loop 我通过命令行将其传递给cmd.exe cmd.exe /C ":loop & timeout /t 1 & goto loop" 它适用于timeout之类的命令,但如果包含loop之类的标签,它就不起作用 它什么也没说就退出了 是否可以通过/C命令成批执行标签和if-else语句?您不能在命令行上使用标签

我试图通过命令行参数运行批处理脚本,以避免每次需要时都将批处理脚本写入文件

示例批处理脚本是

:loop
timeout /t 1
goto loop
我通过命令行将其传递给cmd.exe

cmd.exe /C ":loop & timeout /t 1 & goto loop"
它适用于timeout之类的命令,但如果包含loop之类的标签,它就不起作用

它什么也没说就退出了


是否可以通过/C命令成批执行标签和if-else语句?

您不能在命令行上使用标签,但如果您正在寻找无限循环,则可能滥用for/L命令,从而使计数器永远无法达到其目标

for /L %A in (,,) do timeout /t 1

请注意,如果要在脚本中运行此操作,需要将%a更改为%%a,因为转义%s是如何工作的。

您尝试实现的不是while循环,而是无限循环,这就是我编辑问题标题的原因。无论如何,请通过命令行参数阐明您的意思……您的问题中没有while循环。如果你不知道如何提问,请阅读。也许不要假设每个人都不知道你在说什么,但你的措辞不清楚。您显示的代码片段以及收到的答案将创建一个无限循环。标签本身或缺少标签都不会神奇地将循环变成while循环,while循环是一种非常特殊的循环类型。Windows批处理脚本中没有while关键字。如果你在某个问题上需要帮助,那就由你来恰当地描述所说的问题。很遗憾,你发现有人要求澄清是在浪费时间。您发现问题的while部分非常重要,以至于您回滚了一个编辑并开始讨论它,但是您没有解释您实际上想要一个条件循环。