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

注释中,注意后面是中文冒号
注释中,说明后面是英文冒号

image

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 提示

image


三、扩展说明

3.1 需要后面冒号

按照正常书写习惯,注意和说明后面还是希望有冒号

3.2 解决方法

下面两种方法,就看自己习惯,下面方式,任意选一

3.2.1 增加空格

在冒号后面增加至少一个空格,就不会出现此问题
image

3.2.2 增加空行

@echo off
chcp 65001>nul

:: 注意:

:: 这是测试注释内容注意

:: 说明:

:: 这是测试注释内容说明

pause

image

3.2.3 增加注释空工行

@echo off
chcp 65001>nul

:: 注意:
::
:: 这是测试注释内容注意

:: 说明:
::
:: 这是测试注释内容说明

pause

image


四、REM 注释

4.1 注释被显示

@echo off
chcp 65001>nul

REM 注意:
REM 这是测试注释内容注意

REM 说明:
REM 这是测试注释内容说明

pause

image

4.2 解决方法

参看 第二节说明,这里不重复了

五、@REM 注释

5.1 注释被显示

@echo off
chcp 65001>nul

@REM 注意:
@REM 这是测试注释内容注意

@REM 说明:
@REM 这是测试注释内容说明

pause

image

5.2 解决方法

参看 第二节说明,这里不重复了



免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:



posted @ 2025-01-10 15:27  悟透  阅读(331)  评论(0)    收藏  举报