批处理文件最常用的几个命令:
echo表示显示此命令后的字符
echo on 表示在此语句后所有运行的命令都显示命令行本身
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相像,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续
rem 表示此命令后的字符为注释,不执行。
@echo off ::第一次批处理 chcp 65001
::为了中文的正常输出 echo hello_world 呜啦啦啦 pause
为了学习安全加固脚本的。记录一下基础语法,helloworld开头
set变量
@echo off set a=1 echo %a% ::1 基本赋值
set a=set ::set set b=a ::a set c=^= ::= ^转义用 set d=1 ::1 set e=%a% %b%%c%%d% :: a,b,c,d 的组合set a=1 ::所以e == set a=1 %e% ::运行了set a=1 echo %a% echo %b% echo %c% echo %d% echo %a% echo %%a%% ::转义用 set /p a= pause exit
@echo off set /p a= echo %a% ::a为上面输入的值 set /p password=pleasr input your password ::输入 echo your password is %password% pause exit
@echo off set /p a=<1.txt ::从1.txt读取第一行的所有内容并赋值到%a%
::不过只能输出第一行
echo %a% set c=12 set d=2 set /a b=c*d echo c*d=%b% ::set指令拥有/a参数,那么它的赋值运算符后面的变量不需要带上百分号。 pause exit
同目录下
输出
简单调用:
调用的
::call_b.bat @echo off echo this is call_b call b.bat pause exit ::调用一下b
被调用的b.bat
::b.bat
@echo off echo this is BBBBBBBBBB exit/b 233
运行call_b.bat
环境变量
@echo off chcp 65001 echo %SYSTEMDRIVE% set /p content=<%SYSTEMDRIVE%\WiFi_Log.txt echo %content% set a=1234567890 ::只取变量前一部分 echo %a:~2,3% echo %a:~-1% echo %a:~0,-1% ::从正数第一位一直到倒数第一位之前的那一位 ::变量替换 set a=我好! echo %a:我=你% pause exit
逻辑变换
@echo off set a=1 if "%a%"=="1" ( echo a is 1 ) else ( ::空格规范 echo a isn't 1 ) if not "111" == "222" echo if not if not defined b set b=2 echo %b% if not exist 1.txt echo no txts! pause exit
@echo off chcp 65001 set /p a=请输入a: set /p b=请输入b: if %a% gtr %b% ( echo %a% 大于 %b% ) else ( echo %a% 小于 %b% ) pause exit
传参
@echo off call b.bat 1 3 echo %ERRORLEVEL% ::这里输出了b.bat的退出码 pause exit
@echo off set /a a=%1+%2 :: /a 进行运算 第一个参数和第二个参数 echo %a% exit /b %a% ::exit /b后必须接上数字退出码
一些基本脚本
@ECHO OFF TITLE BAT脚本例子1 echo -----------枚举C盘目录下所有文件----------- echo= echo= dir c:\*.* rem 输出到文本文件 dir c:\*.* > example1.txt echo= echo= echo ------------------------------------------ PAUSE
@ECHO OFF TITLE BAT脚本例子2 chcp 65001 COLOR A echo -----------BAT脚本例子2----------- echo= echo= echo 当前工作路径为:%cd% rem 输出文件目录的树形目录 TREE /f >tree_list.txt rem CD切换不同盘符时候需要加上/d CD /D C:\ echo 当前工作路径为:%cd% DIR rem 创建目录bat_example2 MD bat_example2 DIR rem 拷贝目录 /s /e /y 说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示 Xcopy C:\bat_example2 D:\bat_example2 /s /e /y rem 删除目录bat_example2 rem RD /Q /S bat_example2 rem DIR echo= echo= echo -------------------------------------------- PAUSE