bat脚本|batch入门

 

 

批处理文件最常用的几个命令:

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

 文件操作

@ECHO OFF 
TITLE BAT脚本例子3 
COLOR A 
echo -----------BAT脚本例子3----------- 
echo= 
echo= TYPE 
tree_list1.txt 
rem 复制(合并)文件 /Y 表示目标路径存在该文件则不提示直接覆盖 
COPY /Y tree_list2.txt + tree_list3.txt C:\ 
DEL tree_list4.txt /f /s /q /a 
rem /f 表示强制删除文件 
rem /s表示子目录都要删除该文件 
rem /q表示无声,不提示 
rem /a根据属性选择要删除的文件 
rem 需要特别注意的是:move不能跨分区移动文件夹 
MOVE example3 example3_1 
echo= 
echo= 
echo -------------------------------------------- 
PAUSE

网络命令

@ECHO OFF 
TITLE BAT脚本例子4 
COLOR A 
echo -----------BAT脚本例子4----------- 
echo=  PING www.baidu.com 
echo= 
echo ----------------------------------- 
IPCONFIG 
echo= 
echo ----------------------------------- 
ARP  -a
echo= 
echo ----------------------------------- 
PAUSE

系统相关

@ECHO OFF 
TITLE BAT脚本例子5 
COLOR A 
echo -----------BAT脚本例子5----------- 
echo= 
echo -----------显示计算机用户----------- 
NET USER 
echo= 
echo -----------显示进程列表----------- 
TASKLIST 
echo= 
echo ----------------------------------- 
PAUSE

 

posted @ 2019-03-22 17:35  hilfloser  阅读(542)  评论(0编辑  收藏  举报