windows批处理
前言
@ echo off //是用做关闭路径的
pusae//是让程序暂停,要不然一闪而过
rem 注释
批处理运算操作
-
算数运算
/a 命令行开关指定等号右边的字符串为被评估的数字表达是
运算优先级与我们的c语言基本相同 -
重定向操作
">"直接覆盖
“ >>” 从尾部添加
eg:echo “1111” > 1.text
echo “1111” >> 1.text
type 查看文本
“<”"<<"这个由点不会用。。。 -
多名命令运算
“&&”具有短路功能,第一个命令错误,第二个就不执行啦
“||”机有短路功能,第一个命令执行成功,那么就不会执行第二 -
管道操作运算
“|”这个可以进行值得传递
eg:dir . /s/a | find /c “.exe”
批处理基本命令
-
命令格式 ——命令 子命令 参数 操作 选项
不知道有什么子命令/? 和/help获取详细的帮助信息 -
批处理文件参数传递——.ba文件接受参数使用%num
参数写的时候要分开写
eg:命令xxx.bat 1 2
文件
@echo offecho %1
echo %2pause>nul
-
命令提示符——颜色和标题
color——命令
title——命令 -
时间相关命令——date 和time
-
启动命令——start
“title” 在窗口标题栏中显示的标题。
path 启动目录。
B 启动应用程序,但不创建新窗口。 -
调用其他bat文件——call直接调用文件
注意:路径 -
任务列表参看命令——tasklist
该命令可以显示本地,也可以显示远程计算机的进程列表
/S system 指定连接到的远程系统。/U [domain]user 指定应该在哪个用户上下文执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果省略,则
-
任务关闭命令——tastkill
/FI filter 应用筛选器以选择一组任务。允许使用 ""。例如,映像名称 eq acme
/PID processid 指定要终止的进程的 PID。使用 TaskList 取得 PID。
/IM imagename 指定要终止的进程的映像名称。通配符 '*'可用来指定所有任务或映像名称。
/T 终止指定的进程和由它启用的子进程。
/F 指定强制终止进程。 -
文件结构参看命令 ——tree两个指令 /f /a
-
关机命令 ——shutdown
/l注销,/s关机,/r关机重启,/a中断关机,/h睡眠,/i可是化 -
计划任务命令——at,win10不能用 ,使用schtasks.exe
eg:at 22.00/every -
环境变量——set
-
系统查看 ——%os%
文件夹或文件相关命令
- 目录浏览——dir
/A 显示具有指定属性的文件。
属性 D 目录 R 只读文件
H 隐藏文件 A 准备存档的文件
S 系统文件 I 无内容索引文件
L 重新分析点 O 脱机文件
- 表示“否”的前缀 - 目录新建与删除
mkdir和md新建,可以mdir /a/b/c/d
rmdir和rd删除,非空目录rmdir /S 直接删除所有子目录和文件 - 目录切换——chdir或或者cd
- 目录重命名——ren name
- 目录复制——copy
- 文件删除——del
- 文件剪切——move
网络相关命令
- net user 查看现在的的用户
- net localgroup 用户组相关操作
- ping 网络联通检测命令,
一般用 -a -t
-l size,发送相应大小的缓冲区,这个以前多个设备发送很大的缓存,会导致对方宕机,自己也受影响,你发送相同大小也要接受相同大小,现在这个问题被解决啦。 - telnet 连接命令,这个win上现在用不了,在linux上用的,可以的,主要不太安全
- ipconfig 看一下网卡
- tracert 路由器信息查看,每一个路由器都会ping3次有点ip是无法返回的,最前面的次数的话,就是要经过多少个路由器,一般一个是192.。。。。。这个是你自己的路由器
- ARP 显示和修改地址解析协议使用的“IP到物理”得知转换表
一个ip一个网卡,网卡有固定的物理地址,要对应,通过ARP可以修改对应关系。
条件判断结构
- if else 结构和c语言的差不多,注意if else要保证在一行,如果想不在,要把(分开)
eg:set v=hello
if %v%==hello (echo ok) else (echo no)
PS:pause 会出现点击下一步,可以使用pause>nul这样就没有啦 - exist 判断是否存在
eg:if exist C:\Users\acer\Desktop\3.bat (echo ok) else (echo no)
循环结构
- for基本结构
for %variable in (set) do command [参数] - 遍历目录(文件夹名)
for /d %%名称 in (路径/* ) do 具体操作
eg:for /d %%a in () do if %%a==test rd %%a //遍历之后删除test
for /d %%a in () do echo %%a //遍历说所有的文件名并输出 - 遍历目录和子目录下文件
for /r “路径 ” %%名称 in(匹配规则)do 执行操作 %%v
eg: for /r %%a in () do echo %%a //这个是修改在本目录下的所有文件
for /r “c:” %%v in (.py) do del %%v 删除所有。py数据 - 遍历数字
for /L %%v in (start,step, end)do 具体操作
for /l %%a in (1,1,20) do echo %%a>> 5.text
for /l %%a in (1,1,20) do ping %1.%%v //ping1到20,这里的%1是表示输入的第一个参数 - 遍历文件内容
for /f %%v in(文件名)do 具体操作
eg:for /f %%a in (3.bat) do echo %%a
virus脚本分析
demo:
@echo off
cd C:\Users\acer\Desktop
:loop
md virus
cd virus
goto loop
pause>nul
exist
编程实例案例
- 计算机信息展示
思路:1)使用bat文件保存计算机具体内容到指定文件;2)本地开启HTTP服务,将指定文件放在根目录下,通过浏览器访问
demo:
@echo off
echo. >log.txt
echo log file >> log.txt
echo. >>log.txt
echo user:%username%>>log.txt
date /t>>log.txt
time /t>>log.txt
rem pause>nul
exit
<html>
<head><title>log file </title></head>
<body>
<br>
<center><u><h1> log file </u></h1>
<i>this log flie is created by <b>lwljing</b> for monitoring System Activties!</i>
</center>
<br>
<center>
<ul>
<a href= "log.txt">Click here to view the Log File</a>
</ul>
</center>
</body>
</html>
这里echo . 与echo. 是有区别的ehco.是输出一个空格
- 交互操作
使用交互——熟练使用go to
demo:
@echo off
:main
echo enter you option:
set /p opt=
if %opt%==1 goto one
if %opt%==2 goto two
if %opt%==3 goto three
if %opt%==4 goto four
echo Invalid option
goto main
:one
echo you choice one
pause>nul
exit
:two
echo you choice two
pause>nul
exit
:three
echo you choice three
pause>nul
exit
:four
echo you choice four
pause>nul
exit
3.计划操作使用——at
4.bat toexe converter——bat转换层exe,一般要用其他软件辅助