[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]关于if的,遇到一件怪事,求解

本帖最后由 Tamce 于 2014-8-30 22:07 编辑
  1. if "%2" == "0" (
  2. echo Normal menu:
  3. echo.
  4. ::Normal Menu
  5. ::%1:@=Name,icon=icon,%1^\command:@=command
  6. for /f "tokens=3" %%i in ('reg query %1 /ve 2^>nul') do (echo Name:%%i)
  7. for /f "tokens=3" %%i in ('reg query %1 /v icon 2^>nul') do (echo Icon:%%i)
  8. for /f "tokens=3" %%i in ('reg query %1\command /ve 2^>nul') do (echo Command:%%i)
  9. )
复制代码
这段代码总是会莫名其妙的输出:找不到指定驱动器
而且输出的位置实在近似注释那个位置,然后将代码改成一下则不会有这种情况:
  1. ::if "%2" == "0" (
  2. echo Normal menu:
  3. echo.
  4. ::Normal Menu
  5. ::%1:@=Name,icon=icon,%1^\command:@=command
  6. pause
  7. for /f "tokens=3" %%i in ('reg query %1 /ve 2^>nul') do (echo Name:%%i)
  8. for /f "tokens=3" %%i in ('reg query %1 /v icon 2^>nul') do (echo Icon:%%i)
  9. for /f "tokens=3" %%i in ('reg query %1\command /ve 2^>nul') do (echo Command:%%i)
  10. ::)
复制代码
这是怎么回事?我也不能把if注释掉啊,这里的判断是必须的阿!!

大神求解答。
问题发生的原因和解决方案

回复 2# CrLf

居然真的是那个注释的问题....
我一开始还想,既然是注释,那问题不应该在那里....

谢谢了!

TOP

本帖最后由 CrLf 于 2014-8-29 23:07 编辑

代码块内避免用 :: 做注释,改用 rem 吧
实际上 rem 才是正儿八经的 batch 注释命令
:: 其实只是无效标签,在 () 对中很容易出问题

TOP

返回列表