无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3201|回复: 7
打印 上一主题 下一主题

[求助] 批处理中::符号的困惑

[复制链接]
跳转到指定楼层
1#
发表于 2018-1-9 09:03:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 807979023 于 2018-1-9 09:05 编辑

批处理1运行失败,批处理2运行成功,这是什么原因呢?

1.bat:
  1. set r=1
  2. if "%r%" == "1" (
  3. dir d:
  4. :: d盘目录
  5. )
  6. pause
复制代码


2.bat:
  1. set r=1
  2. if "%r%" == "1" (
  3. :: d盘目录
  4. dir d:
  5. )
  6. pause
复制代码
2#
发表于 2018-1-9 10:07:09 来自手机 | 只看该作者
本帖最后由 窄口牛 于 2018-1-9 10:08 编辑

dir d:\
回复

使用道具 举报

3#
发表于 2018-1-9 10:14:35 来自手机 | 只看该作者
:: 注释,回显开启时也不显示
rem 注释,回显关闭时不显示,开启时显示
回复

使用道具 举报

4#
 楼主| 发表于 2018-1-9 11:56:25 | 只看该作者
谢谢回复
1.bat 运行后立即退出,並未执行dir d:和pause。改dir d:\ 也不行。
比如批处理3运行失败,並未新建目录111。
将::改为rem后能正常运行,看来::没有rem好用。

3.bat:
  1. set r=1
  2. if "%r%" == "1" (
  3. md 111
  4. :: 新建目录
  5. )
复制代码
回复

使用道具 举报

5#
发表于 2018-1-9 12:54:08 | 只看该作者
:: 是一个欺骗性的注释语句!这里的第二个冒号是段落的名称。一般这样的段落需要CALL来调用。
不知道解释的对不对!

点评

还是想不通,2.bat能运行,语句与1.bat完全相同,只是::的位置不同。  详情 回复 发表于 2018-1-9 13:24
回复

使用道具 举报

6#
发表于 2018-1-9 13:06:50 来自手机 | 只看该作者
嗯,最好还是老老实实用rem,这个双冒号应该来自linuxer的操作,因为linux里#。
回复

使用道具 举报

7#
 楼主| 发表于 2018-1-9 13:24:44 | 只看该作者
chishingchan 发表于 2018-1-9 12:54
:: 是一个欺骗性的注释语句!这里的第二个冒号是段落的名称。一般这样的段落需要CALL来调用。
不知道解释 ...

还是想不通,2.bat能运行,语句与1.bat完全相同,只是::的位置不同。
回复

使用道具 举报

8#
发表于 2018-1-10 21:31:13 | 只看该作者
if "%r%" == "1" (dir d:&:: d盘目录)
if "%r%" == "1" (:: d盘目录&dir d:)
个人觉得都不能正常运行才对。
至于第二个能运行我猜是因为批处理解释的时候发现你的IF语句有问题根本没执行,
跳过IF后 下一句遇到一个标签“:” 也跳过。然后执行了dir。

至于REM本来就是一个命令,而:是一个跳转的标签符号。

还有注释的话最好不要在()里面。好像批处理里就没有注释的命令。
那些REM : 只是变通的方法。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-19 12:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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