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

Posted

技术标签:

【中文标题】如何通过命令行参数批量执行while循环【英文标题】:How to do an while loop in batch through command line args 【发布时间】:2021-04-07 21:07:27 【问题描述】:

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

示例批处理脚本是

:loop
timeout /t 1
goto loop

我用命令行将它传递给 cmd.exe

cmd.exe /C ":loop & timeout /t 1 & goto loop"

它适用于诸如超时之类的命令,但如果我包含诸如循环之类的标签,则它不起作用。

它什么也没说就直接退出了。

是否可以通过/C命令批量做标签和if else语句?

【问题讨论】:

您要实现的不是while循环而是无限循环,这就是我编辑问题标题的原因。无论如何,请澄清“通过命令行参数”的意思...... 您的问题中没有“while”循环。如果您不知道如何提问,请阅读How to Ask。 也许不要再假设每个人都不知道你在说什么,但你的措辞不清楚。您显示的 sn-p 以及您收到的答案会创建一个无限循环。单独或缺少标签不会神奇地将循环变成“while”循环,这是一种非常特殊的循环。 Windows 批处理脚本中没有“while”关键字。如果您在特定问题上需要帮助,您可以正确描述该问题。 很遗憾你发现有人要求澄清浪费时间。您发现问题的“while”部分非常重要,以至于您回滚了编辑并开始讨论它,但是您没有在任何地方解释过您实际上想要一个条件循环。 【参考方案1】:

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

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

请注意,如果您想在脚本中运行它,您需要将 %A 更改为 %%A,因为转义 %s 的工作原理。

【讨论】:

以上是关于如何通过命令行参数批量执行while循环的主要内容,如果未能解决你的问题,请参考以下文章

for循环参数列表通过命令行读入

如何通过 c# 传递多个命令行参数

golang获取命令行参数

如何循环通过批量参数提供的目录?

如何在C++中解析命令行参数

selenium+python自动化78-autoit参数化与批量上传