这篇文章上次修改于 191 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

步骤测试可打开Windows系统自带CMD命令框自行测试。

创建批处理步骤:

  • [新建文本文档.txt] --> [双击打开] --> [另存为] --> [文件名.Bat] --> [保存类型 所有文件.] --> [编码 ANSI] --> [保存]

编辑Bat文件:

  • [鼠标右键bat文件] --> [编辑] --> [Ctrl+S 保存]

常用批处理段

关闭回显@ECHO

  • 注:OFF/ON(路径显示只显示结果)
@Echo Off

窗口标题TITLE

  • 注:(UTF-8编码下为乱码-ANSI编码为准)
Title 窗口标题

窗口颜色COLOR

  • 注:(Color ?获取更多)
@Echo Off
Title 窗口标题
Color 9F
Color ?
Pause > Nul

窗口大小MODE

  • 注:(某些系统最小为20,20)
@Echo Off
Title 窗口标题
MODE 20,15
Pause > Nul

设置Path变量,如果在系统中配置错误,它会有所帮助

set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
if exist "%SystemRoot%\Sysnative\reg.exe" (
set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%"
)

以管理员身份运行

  • 注:(会报毒或电脑重启)
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~s0",,,"runas",1)(window.close)&&exit

延时30秒 (按任意键继续运行)

timeout /t 30

延时30秒(按 CTRL + C 结束运行)

timeout /t 30 /nobreak

打开路径E

E:

按任意键继续...

  • 注:PAUSE(显示文字)
@Echo Off
Pause

按任意键继续...

  • 注:PAUSE > NUL(无显示文字)
@Echo Off
Pause > Nul

更新组策略

Gpupdate /force

应用实例

解压后运行

::关闭回显
@Echo Off
::最小化窗口
%1(Start /min cmd.exe /c %0 :& exit )
::获取解压文件夹路径
Set Dir=%~dp0
::解压后运行AAA.exe
Start /wait %~dp0AAA.exe
::运行完后删除自身文件与文件夹
::Start "" cmd /c "rd /s /q "%Dir:~,-1%"&exit"

复制与剪切

::关闭回显 代码显示
@Echo Off
::以管理员身份运行
%1 Mshta Vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
Cd /d "%~dp0"
::窗口标题
TITLE 复制与剪切
::复制覆盖文件夹或文件
Xcopy 复制前路径 复制后路径 /s /e /c /y /r
::等待延时一秒执行下一条命令
Timeout /t 1
::删除原路径文件夹或文件
Rd /s /q "复制前路径"
::延时等待30秒后关闭
Timeout /t 30

管理员身份运行

::关闭回显 代码显示
@Echo Off
::以管理员身份运行
%1 mshta Vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
Cd /d "%~dp0"
::计时等待5秒
Timeout /t 5

运行后删除自己

::关闭回显 代码显示
@Echo Off
::以管理员身份运行
%1 Mshta Vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
Cd /d "%~dp0"
::窗口标题
Title 运行后删除自己
::运行完删除自身
Del %0
::延时等待5秒后关闭
Timeout /t 5

替换文本内容

  • 注:[将同目录下txt文本内容AAAA替换为BBBB]
For /f "delims=" %%i in ('dir /s/b *.txt') do (
For /f "delims=" %%a in ('type "%%~fi"') do (
Set "foo=%%a"
Call,set foo=%%foo:AAAA=BBBB%%%
Call,echo/%%foo%%>>"%%~fi._"
)
Move "%%~fi._" "%%~fi"
)
Exit

每检测A\B\C运行

@Echo Off
%1(Start /min cmd.exe /c %0 :& exit )
:Start
Choice /t 2 /d y /n >nul
Tasklist|find /i "A.exe"
If %errorlevel%==0 ( 
Echo "yes"
Taskkill /f /im B.exe
) Else (
Echo "No" 
Start C.exe
Exit
)
Goto Start

菜单样本

@Echo Off
::------问题
:a0
Echo 请输入密码[8421]:
Echo.
@Set /p c=
Echo.
::------判断语句
::输入正确跳转a1
@IF %c%==8421 goto a1
::-------判断失败
::返回a0
Goto a0
::-------判断正确
::运行a1命令
:a1
::窗口标题00000
Title 00000
::清空命令行
Cls
::窗口背景
Color 9f
::按任意键继续
Pause
::退出
Exit

提示以管理员运行

@Echo Off
If %errorlevel% EQU 0 set _invpth=1
Reg query HKU\S-1-5-19 1>nul 2>nul || goto :E_Admin
Color 9f
Pause >nul
:E_Admin
Echo.
Echo 此脚本需要管理员权限.
Echo.
Echo 为此,请右键单击此脚本并选择“以管理员身份运行”。
Echo.
Echo 按任何一个键退出.
Pause >nul

将文件剪切至某处

::关闭代码运行时的路径显示
@Echo off
::窗口颜色
Color 9F
::窗口标题
Title 执行文件复制与删除(剪切)
Echo.
Echo  - 请确认指定路径文件夹是否存在再执行此文件!
Echo.
Echo  - 默认删除是关闭状态防止误操作引起文件丢失!
Echo.
:A5
Echo 请确认是否运行?[Y/N]
Set /p c=
Echo.
If %c%==Y (
    Goto A1
) Else (
If %c%==y (
    Goto A1
) Else (
IF %c%==N (
    Goto A2
) Else (
IF %c%==n (
    Goto A2
) Else (
    Goto A0
)
)
)
)
:A1
Set Dir=%~dp0
::将当前文件批处理所在目录下得所有[ .mp4 ]文件复制到[ \\192.168.1.10\转储\GIF ]目录下
::可在(*.mp4)添加具体路径,如(C:\*.mp4)表示将C盘下所有.mp4文件复制到指定目录下
For /r %%a in (*.mp4) do copy %%a \\192.168.1.10\转储\GIF
IF %errorlevel%==0 (
    Echo.
    Echo  - 执行移动成功!
    ::删除当前文件批处理所在目录下得所有[ .mp4 ]
    Echo.
    Goto A3
) else (
    Echo  - 执行失败! 
    Echo  - 按任意一个键退出...
    Pause >nul
    Exit
)
:A0
Echo  - 输入错误,请重新输入...
Echo.
Goto A5
Pause >nul
Exit
:A3
::可将%~dp0换成具体路径,如(C:\*.mp4)表示删除C盘下所有.mp4文件^
::Del %~dp0*.mp4 /q/s/a
Echo.
Echo  - 按任意一个键退出...
Pause >nul
Exit
:A2
Echo  - 已取消执行操作...
Echo.
Timeout /t 5
Exit

删除文件夹

rd 删除文件与文件夹 - 后面跟路径
rd c:/winodws/Temp/0000/ (删除C盘temp路径下的0000文件夹)

创建文件夹

md 创建文件夹 - 后面跟路径
[系统变量表][1]
md %HOMEPATH%\DESKTOP\0000 (在桌面创建一个命名为0000的文件夹,如果路径不存在则创建完整路径)

打开路径

cd 打开路径 - 后面跟路径
cd notepad.exe d:/1.txt (ps:用记事本打开D盘1.txt文本)

复制文件

Copy 文件路径 目标路径

复制目录

Xcopy /q/s/a 文件路径 目标路径

判断是否存在文件

If exist xxxx.exe (如果存在) else (如果不存在)

服务 (/Y/N)

sc config 服务名 start= demand //手动
sc condig 服务名 start= auto //自动
sc condig 服务名 Start= Delayed-Auto //自动(延时启动)
sc config 服务名 start= disabled //禁用
sc start 服务名 //启动
sc stop 服务名 //停止