Windows DOS命令\批处理脚本
批处理程序#
简单来说,批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat
小知识#
- cmd 与 powershel 不区分大小写
- 命令行的运算操作,类似于 PHP
- DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令;cmd.exe 是一个 16 位的 DOS 应用程序
- PID 是 processid(进程号);IM 是 imaginename(映像名称)
- 在 .bat 文件开头加上
@echo off
代表不输出描述,比如C:\Users\14805\desktop>...
这样的描述不会输出,直接输出结果 - 设置变量
set a=10
,输出变量echo %a%
,设置变量表达式set /a b=%a%+1
简单演示#
:: 两个冒号表示 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 /?
查看帮助完整版
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
call#
test.bat 文件内容:
echo "Hello "
call test2.bat
test2.bat 文件内容:
echo "Wordl!"
poweshell 运行指令:
.\test.bat
输出 Hello World!
tasklist | taskill#
获取当前状态运行进程的列表
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#
文件生成树
tree
输出
C:.
├───a
├───b
└───c
换一种文件生成树
tree /A
输出
C:.
+---a
+---b
\---c
详细文件生成树
tree /F
输出
C:.
├───a
│ a.txt
│
├───b
└───c
shutdown#
打开 GUI 执行远程主机关机的操作
shutdown /i
关闭本地主机
shutdown /p
at#
某个时间点执行某个作业
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
set#
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 *.txt (cmd | powershell)
显示当前路径
pwd (powershell)
作者: 筱团
出处:https://www.cnblogs.com/CourserLi/p/15344685.html
本站使用「CC BY 4.0」创作共享协议,转载请在文章明显位置注明作者及出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了