简单来说,批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat
@echo off
代表不输出描述,比如 C:\Users\14805\desktop>...
这样的描述不会输出,直接输出结果:: 两个冒号表示 cmd 的注释 rem 也表示 cmd 的注释 # 一个井号表示 powershell 的注释 bat 文件内容: echo "Hello World!" pause cmd 运行指令: test.bat 输出 "Hello World!" powershell 运行指令: .\test.bat 输出 "Hello World!"
覆盖 echo "hello world" > t.txt 追加 echo "hello world" >> t.txt 查看内容 type
短路 ipconfig || net user 从第一个执行,直到执行正确停止 断路 ipconfig && net user 从第一个执行,直到执行错误停止
查看所有用户 net user 查看帮助 net user /? 查看帮助完整版 net user /help 其他命令感觉有点危险,先不写了
bat 文件内容: echo %1 %2 poweshell 运行指令: .\test.bat Hello World! 输出 Hello World!
cmd 运行指令: 年月日 date 输出 当前日期: 2021-09-27 date /T 输出 2021-09-27 时分秒 time 输出 当前时间: 23:14:16.68 time /T 输出 23:14 poweshell 运行指令: date 输出 2021年9月27日 23:14:49
test.bat 文件内容: echo "Hello " call test2.bat test2.bat 文件内容: echo "Wordl!" poweshell 运行指令: .\test.bat 输出 Hello World!
获取当前状态运行进程的列表 tasklist 获取指定要连接的远程系统的 tasklist tasklist /S 192.168.0.1 /U admin /S password 其他参数:/FI 用于筛选 /FO 输出指定格数 tasklist /FI "PID eq 3232" /FO csv > a.csv taskkill 是关闭进程 taskkill /IM notepad.exe
文件生成树 tree 输出 C:. ├───a ├───b └───c 换一种文件生成树 tree /A 输出 C:. +---a +---b \---c 详细文件生成树 tree /F 输出 C:. ├───a │ a.txt │ ├───b └───c
打开 GUI 执行远程主机关机的操作 shutdown /i 关闭本地主机 shutdown /p
某个时间点执行某个作业 at 21:56 "notepad.exe" 删除某个作业 at 2 /delete 每天都在某个位置执行某个作业 at 22:00 /every:M,T,W,Th,F,S,Su C:\Users\14805\desktop\payload.exe
cmd 运行指令: 显示当前环境变量 set 输出环境变量值 echo %OS% 输出 Windows_NT
创建文件夹 mkdir test md test 重命名文件夹 ren test test1 将 a 文件夹中的文件复制到 b 文件夹 copy a b 删除文件夹 rmdir test rd test 删除文件 del *.txt 重命名文件 move test.txt test1.txt 移动文件 move C:\a\test.txt C:\b\test.txt
1. if () else () 2. if ( ) else ( ) 3. 循环文件夹 # for /d %%名称 in (路径/*) do 具体操作 .bat文件内容:打印当前文件夹下的所有文件夹 for /d %%a in (*) do echo %%a 4.循环文件 # for /r "目录文件" %%名称 in (匹配规则,例如 *.py) do 具体操作 .bat文件内容:打印当前文件夹下的所有.py文件 for /r "C:\Users\14805\Desktop\abc" %%a in (*.py) do echo %%a 5.循环数字 # for /L %%a in (start,step,end) do 具体操作 .bat文件内容:ping 168.0.0.1 至 168.0.0.20(传入参数 %1 等于 168.0.0) for /L %%a in (1,1,20) do ping %1.%%a 6.循环文件中的内容 # for /F %%a in (文件名) do 具体操作 .bat文件内容:打印test.bat中的内容 for /F %%a in (test.bat) do echo %%a
清屏 cls 显示当前目录 dir (cmd | powershell) ls (powershell) 打开当前文件夹 start . 查找文件 dir | find ".txt" (cmd) 显示当前路径 pwd (powershell)