windows批处理脚本

最近需要用到批处理脚本,学习一下

第一个程序

Batch file programming微软操作系统自带原生的开发语言,可以直接调用

1
2
3
@echo off
echo "hello world"
pause

运算

有两种模式,命令行和文本模式

命令行set /a a代表算术运算

文本模式

1
2
3
4
@echo off
set /a var = 10*(10-6)
echo %var%
pause

引用某个值需要%%

关系运算

> <

逻辑运算

注意短路

||若第一个执行第二个不执行 &&第一个错误第二个不执行

重定向

左边到右边 >输出到(会覆盖原内容) >>追加输出

右边到左边 < <<

管道

| 前一个命令输出作为后一个命令的输入

1
netstat -an|find "ESTABLISHED"

占位符

输出命令行传进去的参数

1
2
3
@echo off
echo %1
pause

注释

rem remember关键字

windows常用命令

dir 目录

mkdir 创建目录

find 查找文件

type 查看文件

netstat -an 查看网络端口

计算器 calc

画图 mspaint

记事本 notepad

远程桌面 mstsc

管理 compmgmt.msc

注册表 regedit

服务 services.msc

DirectX诊断 dxdiag

相关命令

命令 作用
date 日期
time 时间
start 启动
call 调用
tree 树形显示
shutdown 关机
at 计划任务
at 22:00 /every:M,T,W,Th,F,S,Su 路径
set 设置环境变量,可直接输出,echo%%可直接使用
ren 重命名
copy copy 1 2把1复制到2
ed /s 强制删除
move 重命名或剪切

网络命令

命令 作用
ping 判断连通性(可以ping本地地址看网卡tcp是否正常)
ipconfig 网络配置
tracert 路由跟踪
arp 修改ip到物理解析表

批处理结构

if-else结构

1
if 条件 (语句) else (语句)

多行写

1
2
3
4
5
if 条件 (
语句
) else (
语句
)

左括号在上,右括号另起一行

exist 判断是否存在文件

循环结构

for循环

1
2
3
4
5
6
7
8
rem 遍历目录
for /d %%变量 in 路径 do echo %%变量
rem 遍历目录及其子目录的文件
for /r 路径 %%变量 in (*.txt) do echo %%变量
rem 遍历数字
for /L %%变量 in (start,step.end) do echo %%变量
rem 遍历文件
for /F %%变量 in (文件名) do echo %%变量

goto语句

1
2
3
:loop
语句
goto loop