找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23282|回复: 2

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

[复制链接]
发表于 2014-8-29 22:54:13 | 显示全部楼层 |阅读模式
本帖最后由 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注释掉啊,这里的判断是必须的阿!!

大神求解答。
问题发生的原因和解决方案
发表于 2014-8-29 23:04:56 | 显示全部楼层
本帖最后由 CrLf 于 2014-8-29 23:07 编辑

代码块内避免用 :: 做注释,改用 rem 吧
实际上 rem 才是正儿八经的 batch 注释命令
:: 其实只是无效标签,在 () 对中很容易出问题
 楼主| 发表于 2014-8-29 23:44:19 | 显示全部楼层
回复 2# CrLf

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

谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:52 , Processed in 0.029145 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表