Windows/bat

Windows/bat
  • 命令参数如果有空格,需要用双引号 "" 括起来(不能用单引号)。

BAT 文件编码

bat 文件在 cmd 终端里运行,编码默认使用本地代码页。这决定了 bat 里字符串 literal 和所有终端输出字符的编码。

如果想用 UTF-8 写 bat, 可以在 bat 里第一行用 chcp 65001 更改当前终端代码页为 UTF-8。(注意 bat 文件里不能有 BOM 头)

Tips

REM 修改当前终端代码页为 UTF-8
CHCP 65001

REM 关闭命令回显
@echo off

REM 更改当前目录为(cd) bat 脚本文件所在目录
setlocal
cd /d %~dp0

REM 删除(当前环境下)环境变量
set ABC=

REM 设置一个环境变量
set "AA=1"

REM 修改 PATH
setlocal
SET PATH=%PATH%;c:\whatever\else

REM 永久(persistent)修改系统环境变量
setx ENV_VAR_NAME "DESIRED_PATH" /m

REM 命令行参数
set arg1=%1
set arg2=%2

REM 字符串拼接
set "var=%arg1%%arg2%"

REM 调用变量
fake-command /u %arg1% /p %arg2% %*

REM 数组变量
set "servers=192.168.150.150 192.168.150.151"
for %%a in (%servers%) do (
  echo "Server %%a"
)

REM 暂停。(防止脚本运行完自动退出)
pause

REM 退出脚本
exit

REM 算术运算(整形)
set x=42
set y=5
set /a z = 100 * x / y
echo %z%

Bat 2 Exe

推荐使用 Bat To Exe Converter 这个工具将 bat 转为 exe。支持创建静默(invisible)运行(不打开cmd窗口)的 exe 文件。

其它程序

  • Advanced BAT to EXE Converter 注意用这个程序构建bat为exe需要设置 Windows 本地代码页为 English-US (也可以用 Locale Emulator)。这个工具有免费版,但免费版生成的exe只能在本机运行。
  • Quick Batch File Compiler

此类 bat 转 exe 工具的原理是在运行时释放 bat 到临时目录并执行,退出后再自动删除临时文件。


Last update: 2022-06-14 03:32:41 UTC