bat批处理

批处理模板

一般批处理模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off

::中文正确显示
chcp 65001
setlocal enabledelayedexpansion

::窗口名称
title 自定义名称

:: 字体颜色
color 0A

::窗口大小
MODE con: COLS=60 LINES=20

echo ========================================
echo 脚本名称
echo ========================================

xxxxx 执行的批处理命令
xxxxx 执行的批处理命令
xxxxx 执行的批处理命令
xxxxx 执行的批处理命令

pause

命令

注释

::这是注释

目录操作

  1. 绝对路径
    E:
    cd E:\Note
  2. 相对路径
    cd ..
  3. 显示当前目录
    echo 当前目录是:%cd%

输入

set /p host=请输入备注:
echo %host%

自动执行批处理文件

加入系统启动文件夹,开机启动

  1. 调用运行窗口,shell:startup
  2. 将脚本拖入文件夹
  3. 查看任务管理器的启动页面,看是否启动成功

使用计划任务

  1. 搜索【任务计划程序】
  2. 创建基本任务,按照说明填写

各种问题

解决批处理中文路径乱码问题

在Windows系统中,中文字符默认使用GBK编码,而在bat脚本中,路径中的中文字符会被转换成与当前系统编码不一致的编码格式,从而引发乱码问题。

1
2
3
4
5
6
7
8
chcp 65001  // 表示将控制台编码设置为UTF-8
setlocal enabledelayedexpansion //表示开启延迟变量扩展

set "path=%CD%\文件夹名" // 将路径用双引号括起来,并且在开头加上set "path=",这样可以确保路径中的空格被正确识别。

echo %path%

endlocal

bat脚本中文字符集编码格式问题

在Windows系统中,bat脚本默认使用ANSI编码格式。而当脚本中存在中文字符或其他非英文字符时,这些字符会被认为是特殊字符,从而导致编码格式不一致的问题。

1
2
3
4
5
6
7
8
@echo off
chcp 65001
setlocal enabledelayedexpansion

set var=中文汉字
echo %var%

endlocal