批处理文件 – FOR循环中的CHOICE – Windows批处理
发布时间:2020-12-13 22:30:13 所属栏目:Windows 来源:网络整理
导读:我有这个循环,它为外部文??件中的每一行重复自己.我想提示用户在每次传递中做出选择,尽管这不起作用.我认为问题在于GOTO命令以某种方式打破了循环.有什么想法吗? FOR /F %%i IN (%WORKDIR%grunt-packages.ini) DO ( CHOICE /C AN /M "Odinstalovat plugin"
我有这个循环,它为外部文??件中的每一行重复自己.我想提示用户在每次传递中做出选择,尽管这不起作用.我认为问题在于GOTO命令以某种方式打破了循环.有什么想法吗?
FOR /F %%i IN (%WORKDIR%grunt-packages.ini) DO ( CHOICE /C AN /M "Odinstalovat plugin" IF %ERRORLEVEL%==1 GOTO UNINSTALL IF %ERRORLEVEL%==2 GOTO SKIP :UNINSTALL ECHO Odstranuji %%i CALL npm uninstall %%i :SKIP ECHO Preskakuji %%i ) 解决方法
你的计算是正确的.在for循环中转到将停止循环.解决这个问题的方法是使用call.但是,脚本的第一个问题是需要延迟扩展ERRORLEVEL变量.每当扩展在括号范围内设置的变量时,请使用延迟扩展来获取最新值.
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION FOR /F %%i IN (%WORKDIR%grunt-packages.ini) DO ( CHOICE /C AN /M "Odinstalovat plugin" IF !ERRORLEVEL!==1 CALL :UNINSTALL IF !ERRORLEVEL!==2 CALL :SKIP ) ENDLOCAL GOTO :EOF :UNINSTALL ECHO Odstranuji %%i CALL npm uninstall %%i GOTO :EOF :SKIP ECHO Preskakuji %%i GOTO :EOF > goto不能在for循环中使用.>括号内设置的变量需要延迟扩展才能检索新值. !代替 %.否则,将使用括号范围之前的变量值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 为win32预编译的Iperf 2.x二进制文件?
- windows-vista – Tomcat无法启动 – 如何检查端口8080是否
- windows – 将图像作为按钮控件的背景
- windows – 如何设置NTP客户端与NTP服务器同步的频繁周期
- 程序集 – MBR从DOS启动
- wix – 如何在不重新启动任何组件的情况下强制安装MSI – 但
- windows – SID的用户名?
- Microsoft DirectX DirectShow指针验证远程代码执行漏洞(M
- 如何在不使用ping.exe的情况下在Windows上使用Java一次发送
- cmd – 如何在Windows 7中重命名文件夹:名称中包含空格的命
推荐文章
站长推荐
热点阅读