直接上解决命令:
chcp 65001
乱码测试
echo off cls echo 中文输出测试 pause
中文测试
对应编码对照,咱们中文属于【UTF-8】故而使用【65001】
批处理有很多好东西,慢慢学又学越有意思哦。
各种小技巧,你值得拥有。
以下是批处理的一些基础命令,可以琢磨琢磨:
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判断很重要,好好掌握就好了。批处理,只是帮助我们做一些较为麻烦的事情,但是稍微更麻烦的还是写编码靠谱一些。