以下是关于批处理命令的详细介绍和使用指南,旨在帮助您更好地理解和应用这些命令。
解决乱码问题
要解决批处理文件中的中文乱码问题,可以使用以下命令:
chcp 65001
这会将命令提示符的编码设置为UTF-8,从而正确显示中文字符。
乱码测试
以下是测试乱码的代码:
echo off cls echo 中文输出测试 pause
中文测试
对应编码对照表如下:
代码页 | 映射的字符集 |
---|---|
936 | GB2312 |
20127 | US-ASCII |
65001 | UTF-8 |
批处理基础命令
批处理有很多有趣的命令,学习这些命令可以让您更高效地完成任务。以下是一些基础命令:
-
语句注释
-
rem
行注释,可以回显(语句会在命令行中显示)。
-
::
两个冒号,效果同上,但不会回显。(冒号后加任意非字母数字字符都可起到注释作用)。
-
-
暂停
-
pause
暂停,命令行中出现”请按任意键继续…”。
-
-
输出和换行
-
echo
后加内容即输出该内容,如:
echo "welcome!"
。
-
echo.
换行命令,即
echo
后加一个点。
-
-
关闭路径显示
-
echo off
关闭路径显示。
-
-
开启
-
start
开启(一个神奇的命令,相当好用)。可以通过
start
开启你想开启的一切(给个执行路径就行,网站都能打开)。
-
start http://www.baidu.com
当然,不仅仅用于打开网站,还有文件夹,文件。
-
创建文件夹
-
md
创建文件夹,很多时候都是为了方便搞这个文件夹,
md
直接创建很方便,删的时候直接
del
+ 文件夹名称就删掉了。
-
-
延迟
-
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
-
if 语句判断
-
if
表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:
-
IF 语法:
if [not] "参数" == "字符串" 待执行的命令
参数如果等于(
not
表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
示例:
if "%1" == "a" format a: if {%1} == {} goto noparms
-
if exist 语法:
if [not] exist [路径]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
示例:
if exist config.sys edit config.sys if exist config.sys type config.sys
-
if errorlevel number 语法:
if [not] errorlevel 待执行的命令
如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。(返回值必须按照从大到小的顺序排列)
示例:
@echo off XCOPY F:test.bat D: IF ERRORLEVEL 1 (ECHO 文件拷贝失败) Else IF ERRORLEVEL 0 ECHO 成功拷贝文件 pause
很多 DOS 程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码
errorlevel
或称返回码。常见的返回码为 0、1。通过
if errorlevel
命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。
-
else 语法:
if 条件 (成立时执行的命令) else (不成立时执行的命令)
如果是多个条件,建议适当使用括号把各条件包起来,以免出错。
示例:
if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3)
注:如果
else
的语句需要换行,
if
执行的行尾需用“^”连接,并且
if
执行的动作需用括号包起来,否则报错。
示例:
if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^ else (echo comment3)
-
-
EQU
– 等于(一般使用“==”)
-
NEQ
– 不等于(没有 “!=”,改用“ if not 1==1 ”的写法)
-
LSS
– 小于
-
LEQ
– 小于或等于
-
GTR
– 大于
-
GEQ
– 大于或等于
-
-
-
循环在批处理中使用得并不多,
if
判断非常重要,掌握好这些命令可以帮助您完成一些较为复杂的任务。不过,对于更复杂的任务,编写代码可能更为可靠。