.bat批处理命令

.bat 批处理文件使用 Windows 命令提示符 (cmd.exe) 的命令。以下是一些最常用和重要的批处理命令及其用法示例:

核心命令

  1. @ - 隐藏当前行命令的回显
    bat
    @echo 这条命令本身不会显示出来
  2. echo - 显示消息/开关命令回显
    bat
    echo Hello World :: 输出文本
    echo off :: 关闭后续命令的回显
    echo on :: 开启命令回显
    echo %PATH% :: 显示环境变量
  3. rem - 注释
    bat
    rem 这是一个注释,不会执行
  4. pause - 暂停执行
    bat
    echo 按任意键继续…
    pause >nul :: >nul 隐藏"按任意键继续…"提示
    文件/目录操作
  5. cd - 切换目录
    bat
    cd \ :: 切换到根目录
    cd … :: 切换到父目录
    cd “C:\Program Files” :: 切换带空格的路径
  6. dir - 列出目录内容
    bat
    dir :: 列出当前目录
    dir /b :: 简洁列表(仅文件名)
    dir *.txt :: 列出所有txt文件
  7. copy - 复制文件
    bat
    copy file1.txt file2.txt :: 复制文件
    copy *.txt backup\ :: 复制所有txt到backup目录
    copy /y source.txt dest.txt :: /y 覆盖不提示
  8. del - 删除文件
    bat
    del temp.txt :: 删除文件
    del /q *.tmp :: /q 安静模式(不确认)
  9. md/mkdir - 创建目录
    bat
    md new_folder
    mkdir “C:\My Data”
  10. rd/rmdir - 删除目录
    bat
    rd old_folder :: 删除空目录
    rd /s /q temp :: /s 递归删除 /q 不确认
  11. move - 移动/重命名
    bat
    move file.txt docs\ :: 移动文件
    move old.txt new.txt :: 重命名文件
  12. type - 显示文件内容
    bat
    type config.ini :: 显示文本内容
    变量操作
  13. set - 设置变量
    bat
    set name=John :: 定义变量
    echo %name% :: 使用变量
    set /p input=请输入: :: 接收用户输入
    set /a sum=10+20 :: /a 数学计算(输出30)
  14. 环境变量 - 系统预定义
    bat
    echo 用户目录:%USERPROFILE%
    echo 系统路径:%SystemRoot% :: 通常是C:\Windows
    流程控制
  15. if - 条件判断
    bat
    if exist file.txt (echo 文件存在)
    if not exist folder (md folder)

:: 比较字符串
if “%var%”==“hello” echo 匹配成功

:: 数值比较
set /a num=5
if %num% GEQ 10 (echo 大于等于10) else (echo 小于10)
16. for - 循环
bat
:: 遍历文件
for %%i in (*.txt) do echo 处理文件:%%i

:: 数字循环
for /l %%n in (1,1,5) do echo 当前值:%%n

:: 解析文本
for /f “tokens=1,2” %%a in (data.txt) do echo 第一列:%%a 第二列:%%b
17. goto - 跳转标签
bat
goto :start

:menu
echo 这里是菜单
goto :eof :: 跳转到文件末尾

:start
echo 程序开始
goto :menu
其他实用命令
18. start - 启动程序/窗口
bat
start notepad.exe :: 启动记事本
start “” “C:\Program Files\app.exe” :: 启动带空格的路径
start http://www.google.com :: 打开网页
19. timeout - 等待(Windows XP 用ping模拟)
bat
timeout /t 5 :: 等待5秒(/nobreak 不可中断)
:: XP替代方案:
ping 127.0.0.1 -n 6 >nul :: 等待5秒(ping间隔1秒)
20. cls - 清屏
bat
cls :: 清除控制台内容
21. color - 设置文字/背景色
bat
color 0A :: 0=黑色背景, A=绿色文字(输入color /?查看代码)
22. title - 设置窗口标题
bat
title 我的批处理工具
综合示例脚本
bat
@echo off
title 文件备份工具
color 0B

set /p source=请输入源文件夹:
set backup=%source%backup%date:/=-%

if exist “%backup%” (
echo 备份目录已存在,删除中…
rd /s /q “%backup%”
)

echo 正在备份到 %backup%…
xcopy “%source%” “%backup%” /s /e /i /y

if %errorlevel%==0 (
echo 备份成功!共复制:
dir “%backup%” | find “File(s)”
) else (
echo 备份失败!错误代码 %errorlevel%
)

timeout /t 10
exit
关键技巧
错误处理:用 %errorlevel% 检查上条命令结果

bat
some_command.exe
if %errorlevel% neq 0 echo 错误!代码 %errorlevel%
特殊字符:

输出重定向(echo text > file.txt)

追加输出(echo new >> file.txt)

| 管道(dir | find “txt”)

^ 转义符(echo 特殊符号 ^> ^| ^<)

调试:

去掉 @echo off 查看所有执行命令

在可疑行后加 pause 逐步检查

💡 提示:任何命令后加 /? 可查看帮助(如 for /?)

=====================================

注意:以下命令在Windows命令提示符(cmd.exe)中有效。

  1. ECHO: 显示消息,或打开/关闭命令回显。
    示例:
    echo Hello World :: 显示"Hello World"
    echo off :: 关闭后续命令的回显(但会显示echo off本身)
    @echo off :: 关闭回显,并且不显示echo off命令本身(常用在批处理开头)
    echo on :: 打开回显
  2. REM: 注释命令,后面的内容会被忽略。
    示例:
    REM 这是一个注释
    @REM 这也是注释,而且不会显示出来
  3. SET: 设置变量。
    示例:
    set myVar=Hello :: 设置变量myVar为"Hello"
    echo %myVar% :: 显示变量的值(输出Hello)
    set /p myVar=请输入: :: 提示用户输入,将输入保存到myVar
    set /a result=10+20 :: 进行算术运算,将30赋给result(/a表示算术运算)
  4. IF: 条件判断。
    示例:
    if “%var%”==“value” echo 相等 :: 如果变量var等于"value",则显示"相等"
    if exist filename.txt echo 文件存在 :: 如果文件存在,则显示
    if not exist folder (echo 文件夹不存在) :: 如果文件夹不存在,则显示
    if errorlevel 1 echo 上一个程序退出代码大于等于1
  5. FOR: 循环命令。
    示例:
    for %%i in (1,2,3) do echo %%i :: 循环输出1,2,3(在批处理文件中用%%i,命令行中用%i)
    for /f “tokens=*” %%a in (file.txt) do echo %%a :: 读取文件每一行
    for /f “tokens=1,2 delims=,” %%a in (“aa,bb,cc”) do echo %%a and %%b :: 分割字符串
  6. GOTO: 跳转到标签。
    示例:
    goto :mylabel
    … 跳过这些行 …
    :mylabel
    echo 跳转到这里
  7. CALL: 调用另一个批处理文件,或者调用本批处理中的标签(作为子程序)。
    示例:
    call another.bat :: 调用另一个批处理文件,执行完后返回
    call :subroutine :: 调用本批处理中的标签:subroutine
    exit /b :: 退出子程序(或批处理)
    :subroutine
    echo 子程序
    exit /b
  8. START: 启动一个单独的窗口运行指定的程序或命令。
    示例:
    start notepad.exe :: 启动记事本
    start “” “C:\Program Files\SomeApp\app.exe” :: 启动带空格路径的程序
  9. PAUSE: 暂停执行,显示“请按任意键继续…”。
    示例:
    pause
  10. EXIT: 退出批处理脚本。
    示例:
    exit :: 退出
    exit /b 1 :: 退出当前批处理脚本(/b表示退出脚本但不退出cmd窗口),并返回错误码1
  11. CD: 更改目录。
    示例:
    cd \ :: 切换到根目录
    cd … :: 切换到父目录
    cd “C:\Program Files” :: 切换到带空格的目录(需要引号)
  12. MKDIR (MD): 创建目录。
    示例:
    mkdir new_folder :: 创建名为new_folder的文件夹
  13. RMDIR (RD): 删除目录。
    示例:
    rmdir /s /q old_folder :: 安静地删除old_folder及其所有子目录(/s表示递归,/q表示安静模式,不询问)
  14. DEL: 删除文件。
    示例:
    del file.txt :: 删除文件
    del /q /f *.tmp :: 安静地强制删除所有.tmp文件
  15. COPY: 复制文件。
    示例:
    copy source.txt dest.txt :: 复制文件
    copy /y source.txt dest.txt :: 覆盖时不提示(/y)
  16. MOVE: 移动文件或重命名。
    示例:
    move old.txt new.txt :: 重命名
    move file.txt folder\ :: 移动文件到文件夹
  17. TYPE: 显示文本文件内容。
    示例:
    type file.txt
  18. FIND: 在文件中搜索字符串。
    示例:
    find “error” log.txt :: 在log.txt中查找包含"error"的行
  19. TITLE: 设置命令提示窗口的标题。
    示例:
    title 我的批处理脚本
  20. COLOR: 设置控制台前景和背景颜色。
    示例:
    color 0A :: 背景黑色(0),前景绿色(A)
  21. CLS: 清屏。
  22. PUSHD 和 POPD: 保存当前目录然后更改,之后可以恢复。
    示例:
    pushd “C:\Program Files”
    … 在这里操作 …
    popd :: 回到之前的目录
  23. ERRORLEVEL: 上一条命令的退出代码(通常0表示成功,非0表示错误)。但通常用%errorlevel%访问,或用if errorlevel。
    示例:
    somecommand.exe
    if %errorlevel% neq 0 echo 命令执行失败!
  24. SHIFT: 移动批处理参数的位置(%0, %1, %2…),使得%1获取原%2的值,以此类推。
    示例: 用于处理不定数量的参数。
  25. ASSOC: 显示或修改文件扩展名关联。
  26. FTYPE: 显示或修改文件类型关联。
    注意:以上只是常用命令,还有很多其他命令。每个命令都有更多参数,可以通过命令 /?来查看帮助(例如:for /?)。
    下面是一个综合示例脚本(example.bat):
@echo off
REM 示例批处理脚本
title 示例批处理
color 0A
echo 当前日期和时间:
date /t
time /t
set /p username=请输入你的名字:
echo 你好, %username%!
if exist "test.txt" (
    echo test.txt文件已存在,将删除它。
    del test.txt
) else (
    echo test.txt不存在。
)
echo 创建test.txt并写入内容...
echo 这是由批处理脚本创建的文件>test.txt
echo 添加一行内容>>test.txt
echo 文件内容如下:
type test.txt
echo 按任意键退出...
pause >nul
exit


```bash
@echo off
echo hello world
rem pause

set myVar=Hello
echo %myVar%
rem set /p myVar2=请输入:
echo %myVar2%
set /a result=10+20
echo %result%
rem set /p input=请再次输入:
echo %input%

if "%myVar%"=="Hello" echo 相等
if exist c:\Users\Larry\Desktop\run.bat echo 文件存在
if not exist c:\Users\Larry\Desktop\run.bat1 echo 文件不存在
if errorlevel 1 echo 上一个程序退出代码大于等于1
set /a num=5
if %num% GEQ 10 (echo 大于等于10) else (echo 小于10)
if %num% LEQ 10 (echo 大于等于10) else (echo 小于10)

for %%i in (1,2,3) do echo %%i
for /f "tokens=*" %%a in (C:\Users\Larry\Desktop\API_Service_IP.txt) do echo %%a
for /f "tokens=1,2 delims=," %%a in (C:\Users\Larry\Desktop\API_Service_IP.txt) do echo %%a and %%b
for /f "tokens=1,2 delims=," %%a in ("aa,bb,cc") do echo %%a and %%b

goto :mylabel 
echo 开始跳转

:mylabel
echo 跳转到此处

call C:\Users\Larry\Desktop\run_2.bat

call:mylabel2
echo call调转处

:mylabel2
echo mylabel2处

rem exit /b

rem start notepad.exe
rem start "" "d:\file_upload_postman.txt"

cd \
cd "c:\Program Files"
cd c:\Users\Larry\Desktop

mkdir d:\aaabbb
rmdir /s /q d:\aaabbb

del c:\users\larry\desktop\delete.txt
del /q /f c:\users\larry\desktop\delete.txt

copy c:\users\larry\desktop\run_2.bat c:\users\larry\desktop\run_3.bat
copy /y c:\users\larry\desktop\run_2.bat c:\users\larry\desktop\run_3.bat

move c:\users\larry\desktop\run_3.bat c:\users\larry\desktop\run_4.bat
move c:\users\larry\desktop\run_4.bat c:\users\larry\desktop\

type c:\users\larry\desktop\run_2.bat

find "第二" c:\users\larry\desktop\run_4.bat

title 我的批处理脚本

color 0A

rem cls

pushd "C:\Program Files"
popd 

if %errorlevel% neq 0 echo 失败
echo %errorlevel%

shift /2

date /t
time /t
rem date
rem time

echo 示例:

if exist "test.txt" (
    echo test.txt文件已存在,将删除它。
    del test.txt
) else (
    echo test.txt不存在。
)

timeout /t 3

ping 127.0.0.1 -n 3

dir | find "txt"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值