无忧启动论坛
标题:
批处理中::符号的困惑
[打印本页]
作者:
807979023
时间:
2018-1-9 09:03
标题:
批处理中::符号的困惑
本帖最后由 807979023 于 2018-1-9 09:05 编辑
批处理1运行失败,批处理2运行成功,这是什么原因呢?
1.bat:
set r=1
if "%r%" == "1" (
dir d:
:: d盘目录
)
pause
复制代码
2.bat:
set r=1
if "%r%" == "1" (
:: d盘目录
dir d:
)
pause
复制代码
作者:
窄口牛
时间:
2018-1-9 10:07
本帖最后由 窄口牛 于 2018-1-9 10:08 编辑
dir d:\
作者:
nttwqz
时间:
2018-1-9 10:14
:: 注释,回显开启时也不显示
rem 注释,回显关闭时不显示,开启时显示
作者:
807979023
时间:
2018-1-9 11:56
谢谢回复
1.bat 运行后立即退出,並未执行dir d:和pause。改dir d:\ 也不行。
比如批处理3运行失败,並未新建目录111。
将::改为rem后能正常运行,看来::没有rem好用。
3.bat:
set r=1
if "%r%" == "1" (
md 111
:: 新建目录
)
复制代码
作者:
chishingchan
时间:
2018-1-9 12:54
:: 是一个欺骗性的注释语句!这里的第二个冒号是段落的名称。一般这样的段落需要CALL来调用。
不知道解释的对不对!
作者:
窄口牛
时间:
2018-1-9 13:06
嗯,最好还是老老实实用rem,这个双冒号应该来自linuxer的操作,因为linux里#。
作者:
807979023
时间:
2018-1-9 13:24
chishingchan 发表于 2018-1-9 12:54
:: 是一个欺骗性的注释语句!这里的第二个冒号是段落的名称。一般这样的段落需要CALL来调用。
不知道解释 ...
还是想不通,2.bat能运行,语句与1.bat完全相同,只是::的位置不同。
作者:
icevan
时间:
2018-1-10 21:31
if "%r%" == "1" (dir d:&:: d盘目录)
if "%r%" == "1" (:: d盘目录&dir d:)
个人觉得都不能正常运行才对。
至于第二个能运行我猜是因为批处理解释的时候发现你的IF语句有问题根本没执行,
跳过IF后 下一句遇到一个标签“:” 也跳过。然后执行了dir。
至于REM本来就是一个命令,而:是一个跳转的标签符号。
还有注释的话最好不要在()里面。好像批处理里就没有注释的命令。
那些REM : 只是变通的方法。
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3