cmd/bat中文乱码

举报
红目香薰 发表于 2022/05/28 19:12:52 2022/05/28
【摘要】 ​直接上解决命令:chcp 65001乱码测试echo offclsecho 中文输出测试pause​编辑中文测试​编辑对应编码对照,咱们中文属于【UTF-8】故而使用【65001】代码页映射的字符集936GB231220127US-ASCII65001UTF-8批处理有很多好东西,慢慢学又学越有意思哦。各种小技巧,你值得拥有。以下是批处理的一些基础命令,可以琢磨琢磨:1、语句注释rem行注...

直接上解决命令:

chcp 65001

乱码测试

echo off
cls
echo 中文输出测试
pause

编辑

中文测试

编辑

对应编码对照,咱们中文属于【UTF-8】故而使用【65001】

代码页 映射的字符集
936 GB2312
20127 US-ASCII
65001 UTF-8

批处理有很多好东西,慢慢学又学越有意思哦。

各种小技巧,你值得拥有。

以下是批处理的一些基础命令,可以琢磨琢磨:

1、语句注释

rem行注释,可以回显(语句会在命令行中显示);

::两个冒号,效果同上,但不会回显。(冒号后加任意非字母数字字符都可起到注释作用)

2、暂停

pause暂停,命令行中出现"请按任意键继续..."

3、输出和换行

echo后加内容即输出该内容,如:echo "welcome!";

echo.换行命令,即echo后加一个点

4、关闭路径显示

echo off

5、start开启(一个神奇的命令,相当好用)

可以通过start开启你想开启的一切(给个执行路径就行,网站都能打开)

start http:www.baidu.com

编辑

当然,不仅仅用于打开网站,还有文件夹,文件。

6、md创建文件夹

很多时候都是为了方便搞这个文件夹,md直接创建很方便,删的时候直接del+文件夹名称就删掉了。

7、timeout延迟

虽然不是很经典的命令,但是很多时候能给你带来一点欢乐。

@echo off
::每隔一秒输出兔子序列
set a=1
set b=1
echo %a%&timeout 1 >nul
echo %b%&timeout 1 >nul
:start
set /a c=a+b
echo %c%&set a=%b%&set b=%c%
timeout 1 > nul
goto start
pause

8、if语句判断

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:
1、 IF
语法: if [not] "参数" == "字符串" 待执行的命令
参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
Sample: if "%1" == "a" format a:
Sample: if {%1} == {} goto noparms
2、 if exist
语法: if [not] exist [路径\]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
Sample: if exist config.sys edit config.sys (表示如果存在这文件,则编辑它,用很难看的系统编辑器)
Sample: if exist config.sys type config.sys (表示如果存在这文件,则显示它的内容)
3、 if errorlevel number
语法: if [not] errorlevel <数字> 待执行的命令
如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。(返回值必须按照从大到小的顺序排列)
Sample:
@echo off
XCOPY F:\test.bat D:\
IF ERRORLEVEL 1 (ECHO 文件拷贝失败
) Else IF ERRORLEVEL 0 ECHO 成功拷贝文件
pause
很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码errorlevel或称返回码。
常见的返回码为0、1。通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。
 4、else
语法: if 条件 (成立时执行的命令) else (不成立时执行的命令)
如果是多个条件,建议适当使用括号把各条件包起来,以免出错。
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )
注:如果 else 的语句需要换行,if 执行的行尾需用“^”连接,并且 if 执行的动作需用(括起来),否则报错
Sample: if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^
else (echo comment3 )
5、比较运算符:
EQU - 等于 (一般使用“==”)
NEQ - 不等于 (没有 “!=”,改用“ if not 1==1 ”的写法)
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

循环什么的起始用的并不多,if判断很重要,好好掌握就好了。批处理,只是帮助我们做一些较为麻烦的事情,但是稍微更麻烦的还是写编码靠谱一些。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。