标题: [其他] [已解决]关于if的,遇到一件怪事,求解 [打印本页]
作者: Tamce 时间: 2014-8-29 22:54 标题: [已解决]关于if的,遇到一件怪事,求解
本帖最后由 Tamce 于 2014-8-30 22:07 编辑
- if "%2" == "0" (
- echo Normal menu:
- echo.
- ::Normal Menu
- ::%1:@=Name,icon=icon,%1^\command:@=command
- for /f "tokens=3" %%i in ('reg query %1 /ve 2^>nul') do (echo Name:%%i)
- for /f "tokens=3" %%i in ('reg query %1 /v icon 2^>nul') do (echo Icon:%%i)
- for /f "tokens=3" %%i in ('reg query %1\command /ve 2^>nul') do (echo Command:%%i)
- )
复制代码
这段代码总是会莫名其妙的输出:找不到指定驱动器
而且输出的位置实在近似注释那个位置,然后将代码改成一下则不会有这种情况:- ::if "%2" == "0" (
- echo Normal menu:
- echo.
- ::Normal Menu
- ::%1:@=Name,icon=icon,%1^\command:@=command
- pause
- for /f "tokens=3" %%i in ('reg query %1 /ve 2^>nul') do (echo Name:%%i)
- for /f "tokens=3" %%i in ('reg query %1 /v icon 2^>nul') do (echo Icon:%%i)
- for /f "tokens=3" %%i in ('reg query %1\command /ve 2^>nul') do (echo Command:%%i)
- ::)
复制代码
这是怎么回事?我也不能把if注释掉啊,这里的判断是必须的阿!!
大神求解答。
问题发生的原因和解决方案
作者: CrLf 时间: 2014-8-29 23:04
本帖最后由 CrLf 于 2014-8-29 23:07 编辑
代码块内避免用 :: 做注释,改用 rem 吧
实际上 rem 才是正儿八经的 batch 注释命令
:: 其实只是无效标签,在 () 对中很容易出问题
作者: Tamce 时间: 2014-8-29 23:44
回复 2# CrLf
居然真的是那个注释的问题....
我一开始还想,既然是注释,那问题不应该在那里....
谢谢了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |