cmd/bat中文乱码

以下是关于批处理命令的详细介绍和使用指南,旨在帮助您更好地理解和应用这些命令。

解决乱码问题

要解决批处理文件中的中文乱码问题,可以使用以下命令:

chcp 65001

这会将命令提示符的编码设置为UTF-8,从而正确显示中文字符。

乱码测试

以下是测试乱码的代码:

echo off
cls
echo 中文输出测试
pause

中文测试

对应编码对照表如下:

代码页 映射的字符集
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

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

  1. 创建文件夹

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

    • 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
  1. if 语句判断

    • if
      表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:

      1. IF 语法

        if [not] "参数" == "字符串" 待执行的命令

        参数如果等于(

        not
        表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)

        示例:

        if "%1" == "a" format a:
        if {%1} == {} goto noparms
      2. if exist 语法

        if [not] exist [路径\\]文件名 待执行的命令

        如果有指定的文件,则条件成立,运行命令,否则运行下一句。

        示例:

        if exist config.sys edit config.sys
        if exist config.sys type config.sys
      3. 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
        命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。

      4. 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)
      5. 比较运算符

        • EQU
          - 等于(一般使用“==”)
        • NEQ
          - 不等于(没有 “!=”,改用“ if not 1==1 ”的写法)
        • LSS
          - 小于
        • LEQ
          - 小于或等于
        • GTR
          - 大于
        • GEQ
          - 大于或等于

循环在批处理中使用得并不多,

if
判断非常重要,掌握好这些命令可以帮助您完成一些较为复杂的任务。不过,对于更复杂的任务,编写代码可能更为可靠。