如何打破批处理文件中的 FOR 循环?

Posted

技术标签:

【中文标题】如何打破批处理文件中的 FOR 循环?【英文标题】:How to break the FOR Loop Inside the batch file? 【发布时间】:2017-12-19 04:00:43 【问题描述】:

这是我的代码:

@echo off

for /f "tokens=2*" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\NCR\APTRA\Aggregate 
Installer\Inventory\Aggregate\APTRA Self-Service Support" /f 06.04.01') do set "AppPath=%%~b"
echo %AppPath%

cmd /k

所以当我们运行这个批处理文件时,命令提示符会打开,所以我的要求是当我点击 Enter 时,我们需要打破 FOR LOOP,因为命令提示符没有关闭,有人可以帮我吗?

【问题讨论】:

我知道如何break out of for loops,但我不明白你的问题。你到底想达到什么目的? 如果您的注册表搜索模式更具体,则可能无需跳出循环。 您似乎提前知道该数据的确切位置。您能否向我们展示您尝试解析的确切键、值和数据内容。 当我们运行该批处理文件命令提示符屏幕将显示消息 1 Match Found !并使用位置 C:pangaea\batchfile ,所以当我单击应该关闭的输入按钮但这是重复 C:pangaea\batchfile C:pangaea\batchfile C:pangaea\batchfile C:pangaea\batchfile C:pangaea\batchfile 即使我按回车,我无法附上屏幕截图给你看 使用该代码重复循环 C:pangaea\batchfile, C:pangaea\batchfile, C:pangaea\batchfile 我想用输入按钮关闭 cmd 简而言之! 我想在使用回车键打开命令提示符后退出该输出! 【参考方案1】:

尝试使用 goto:

@echo off

for /f "tokens=2*" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\NCR\APTRA\Aggregate 
Installer\Inventory\Aggregate\APTRA Self-Service Support" /f 06.04.01') do (
 set "AppPath=%%~b"
 goto :break
)
:break
echo %AppPath%

cmd /k

【讨论】:

是的,当我尝试运行此代码时,命令提示符无法打开!同时运行和关闭,但是命令提示符需要打开应该显示消息,当我们点击回车时,需要关闭

以上是关于如何打破批处理文件中的 FOR 循环?的主要内容,如果未能解决你的问题,请参考以下文章

如何打破 webpack 钩子中的循环

如何在批处理文件中的for循环中使用可变长度的子字符串?

批处理:如何在 FOR 循环中附加字符串

如何在批处理文件中使用for循环列出文件夹中所有文件和目录的名称

我将如何隔离或仅将第二个元素存储在批处理文件内的 for 循环中?

如何逐步在批处理文件中运行for循环