首页/系统/信创系统运维速查/bat 批处理脚本迁移为 shell
迁移适配65 条

bat 批处理脚本迁移为 shell

批处理迁移要点:变量与路径、错误处理、编码换行、计划任务绑定;结构简单的脚本重写为 bash 比逐行翻译更可靠。

信创系统运维速查系统更新于 2026-10-12

常见结构对照

常见结构对照
:: bat: set /p name=输入名称
read -p '输入名称: ' name

:: bat: if not exist dir mkdir dir
mkdir -p "$dir"

:: bat: for %%f in (*.log) do echo %%f
for f in *.log; do echo "$f"; done

:: bat: call :func / exit /b 0
my_func() { echo "$1"; }
my_func hello

转换后检查

转换后检查
file script.sh          # 检查是否 CRLF(见 dos2unix 条目)
bash -n script.sh       # 语法检查
command -v shellcheck >/dev/null && shellcheck script.sh || true
路径分隔符(\\ vs /)、变量(%VAR% vs $VAR)与错误码(%ERRORLEVEL% vs $?)都要逐项替换。

易错点

  • Windows 拷贝来的脚本常带 CRLF,执行报 bad interpreter,先 dos2unix 再调
  • 执行权限:chmod +x 或用 bash script.sh 显式调用

数据来源与参考

  • Microsoft Learn(批处理脚本参考)
  • man 1 bash
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌