Window 11 bat 注释有:冒号被打印显示出来
前言全局说明
Window 11 bat 注释被打印显示出来
一、说明
1.1 环境:
Windows 11 家庭版 23H2 22631.3737
1.2 注释说明
正常情况下,注释的内容,是不会被显示到界面的上的。
但是,DOS bat 批处理在使用中就会被显示.
1.3 DOS 注释方式
DOS 共有三种注释,分别是: ::、REM、@REM
三种注释区别:
:: 方式注释
REM 方式注释
@REM 方式注释
参看:https://blog.csdn.net/qq_45662588/article/details/126378272
这里不重复赘述
二、:: 方式注释
2.1 注释被显示出来了
文件名:Win11_批处理文件_注释测试.bat
@echo off
chcp 65001>nul
:: 注意:
:: 这是测试注释内容注意
:: 说明:
:: 这是测试注释内容说明
pause
注释中,注意后面是中文冒号
注释中,说明后面是英文冒号

2.2 问题分析
根据上面图片运行结果显示,打印的汉字可知,大概错误的未知。
按错误位置找到,发现汉字处并无特殊字符内容。
那么分析一下:
1. 不能用中文注释? (答:不是的,可以用中文注释,排除)
2. 有什么特殊字符? (答:没有)
3. 图片中汉字前的乱码,可能是和什么字符错位了。除汉字以外的字符就是中文和英文冒号了。
4. 是编码问题?(答:不是。首先 chcp 65001>nul 设置了当前环境编码,而且错误输出内容中,也有正确的汉字输出。如果是编码不对,输出会全是乱码。
想看乱码啥样,可以把编码改成 Win7 的 Chcp 936 >nul 就知道效果了)
2.3 解决
既然是冒号原因,那么删掉就可以了。
2.4 去掉注意和说明后的冒号
文件名:Win11_批处理文件_注释测试.bat
@echo off
chcp 65001>nul
:: 注意
:: 这是测试注释内容注意
:: 说明
:: 这是测试注释内容说明
pause
结果正常了,因为代码中没有任何功能,所以只有 pause 提示

三、扩展说明
3.1 需要后面冒号
按照正常书写习惯,注意和说明后面还是希望有冒号
3.2 解决方法
下面两种方法,就看自己习惯,下面方式,任意选一
3.2.1 增加空格
在冒号后面增加至少一个空格,就不会出现此问题

3.2.2 增加空行
@echo off
chcp 65001>nul
:: 注意:
:: 这是测试注释内容注意
:: 说明:
:: 这是测试注释内容说明
pause

3.2.3 增加注释空工行
@echo off
chcp 65001>nul
:: 注意:
::
:: 这是测试注释内容注意
:: 说明:
::
:: 这是测试注释内容说明
pause

四、REM 注释
4.1 注释被显示
@echo off
chcp 65001>nul
REM 注意:
REM 这是测试注释内容注意
REM 说明:
REM 这是测试注释内容说明
pause

4.2 解决方法
参看 第二节说明,这里不重复了
五、@REM 注释
5.1 注释被显示
@echo off
chcp 65001>nul
@REM 注意:
@REM 这是测试注释内容注意
@REM 说明:
@REM 这是测试注释内容说明
pause

5.2 解决方法
参看 第二节说明,这里不重复了
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
浙公网安备 33010602011771号