148.【Windows DOS命令脚本文件】

Window待处理脚本

(一)、批处理编程初步体验

简单来说,批处理程序就是 Windows 自带的脚本,可以在 cmd | powershell 中直接运行,若写成文件,后缀为 .bat

小知识

  1. cmdpowershel 不区分大小写
  2. 命令行的运算操作,类似于 PHP
  3. DOS 是磁盘操作系统;命令提示符是 DOS 系统的界面中输入 DOS 命令的提示位置;cmd 是系统运行其自带 DOS 的命令;cmd.exe 是一个 16 位的 DOS 应用程序
  4. PID 是 processid(进程号);IM 是 imaginename(映像名称)
  5. 在 .bat 文件开头加上 @echo off 代表不输出描述,比如 C:\Users\14805\desktop>… 这样的描述不会输出,直接输出结果
  6. 设置变量 set a=10,输出变量 echo %a%,设置变量表达式 set /a b=%a%+1

1.什么是批处理程序?

(1).批处理程序的定义

BAT编程,即批处理编程,是一种基于Windows操作系统的脚本编程语言。它使用文本文件作为脚本,通过一系列的命令和控制语句来执行特定的任务。BAT编程主要用于自动化重复性的任务,提高计算机的效率和便利性。本文将为您介绍BAT编程的基础知识,并引导您编写简单的批处理脚本。

bat处理文件使用cmd、exe执行。

在这里插入图片描述

(2).如何编辑批处理程序
  • 可以使用任意的文本编辑器
    • notepad: window自带的文本编辑器,然后我们需要将文件后缀改成.bat即可
      在这里插入图片描述

2.批处理程序可以做什么?

使用一系列的内置命令进行自动化操作

(1).匹配规则删除文件
(2).新建文件,日志等
(3).创建计算机病毒等

3.一个基本的批处理文件

(1).带盘符的输出->HelloWorld
  • 第一步使用window+R然后输入cmd。
echo "hello world"

在这里插入图片描述

(2).不带盘符的输出->HelloWorld
// 1.开启window批处理文件
@echo off
// 2.输出
echo "hello world"
// 3.结束批处理文件
pause

在这里插入图片描述

4.命令分类

(1).内部命令

window自带的命令大全

https://www.cnblogs.com/klchang/p/4771101.html

常用小工具

工具名称cmd命令
计算器calc
记事本notepad
写字板write
画图mspaint
放大镜magnify
屏幕键盘osk
字符映射表charmap
专用字符编辑程序eudcedit
远程桌面连接mstsc
音量合成器-扬声器sndvol

常用管理工具

工具名称cmd 命令
任务管理器taskmgr
资源监视器perfmon.msc
查看Window版本winver
资源管理器explorer
计算机管理compmgmt.msc
设备管理器devmgmt.msc
事件查看器eventvwr.msc
磁盘管理diskmgmt.msc
组件管理dcomcnfg
本地安全策略secpol.msc
本地组策略管理器gpedit.msc
组策略结果集rsop.msc
本地用户和组lusrmgr.msc
本地服务services.msc
注册表编辑器regedit
打开注册表编辑器regedt32
系统配置实用工具msconfig
DirectX 诊断工具dxdiag
Microsoft 控制台mmc
WMI控件wmimgmt.msc
(2).外部命令

(二)、批处理运算操作

1.算术运算

(1).命令模式
  • /a : 表示这是一个运算命令。
// 执行加法
set /a 1+3
// 执行减法
set /a 3-1
// 执行除法
set /a 4/2
// 执行取模
set /a 5%2

在这里插入图片描述

(2).文本模式

输出变量的时候没有使用 %%引注

@echo off
// 1.使用var变量,进行接受值
set /a var = 1+2
// 2.直接输出var,并不会是3
echo var

pause

在这里插入图片描述

输出变量的时候使用%%引注

@echo off
// 1.使用var变量,进行接受值
set /a var = 1+2
// 2.直接输出3
echo %var%

pause

在这里插入图片描述

2.重定向运算

(1).什么是重定向运算?

重定向运算: 默认情况下,Powershell 把输出发送到屏幕显示。但是,Powershell也可以将输出重定向至一个文本文件,或将错误输出重定向至常规输出流。 重定向运算符意味着我们可以将命令的输出信息输出到指定的文件,完全满足脚本中的log的要求,即可以利用重定向打印脚本或命令执行的详细信息。

(2).五大重定向运算符

第一种: >

输出文件到指定文件: (会产生覆盖)

PS D:\> Get-Process > process.txt

第二种: >>

将输出追加到指定的文件: (不会覆盖,追加)

PS D:\> dir *.txt >> process.txt

在这里插入图片描述

第三种: 2>

将输出中的错误发送到指定的文件。(会产生覆盖)

PS D:\> Get-Process none 2> errors.txt

第四种: 2>>

将输出中的错误追加到指定的文件。该运算符是在实际使用中使用频率最高的重定向运算符。(非覆盖,追加)

PS D:\> Get-Process none,powershell 2>> .\errore.txt

第五种: 2>&1

将错误发送到成功输出流。这个需要注意,命令执行成功的信息会显示,但是错误的信息并不会显示。

PS D:\> Get-Process none,powershell 2>$1
(3). 查看指定文件的内容
  • type 文件 :查看指定文件的内容

在这里插入图片描述

(4).文件和文件之间的传输
  • 文件 > :表示将对应的右边的内容输出到左边,(会产生覆盖)
  • 文件 >> :表示将对应的右边的内容输出到左边,(不会产生覆盖,表示追加)

3.多命令运算

(1).什么是多命令运算?

多命令运算就是: 多个命令一起运算。

(2).两种多命令运算符

&& 短路

&&: 具有短路,第一个命令错误,那么就不会执行第二个命令

// 前面执行失败,后面的就不会执行
aaa && ipconfig

// 前面执行成功,后面的才会继续执行
ipconfig && net user

在这里插入图片描述

|| 断路

第一个命令执行成功,第二个就不会被执行;加入第一个命令执行失败,那么第二个才会被执行。

在这里插入图片描述

4.管道操作运算符

(1).什么是管道运算符

管道运算符: A | B A命令的输出结果会当作B的输入。

场景一: 对文件进行过滤

// 1.查看当前文件夹都有什么文件
dir
// 2.将dir查询的结果当作查找文件输入的文件进行查找
dir | find ".txt"

在这里插入图片描述

场景二:

// 1.显示全部的网络链接
netstat -an

// 2.筛选出当前主机和外部的连接
netstat -an | find "ESTABLISHED"

在这里插入图片描述

(三)、批处理基本命令

基本格式:

命令 子命令 参数  操作 选项

1.命令帮助

(1).第一种命令帮助查询 (net)

当且仅有一个命令的时候,可以使用

net
(2).第二种命令帮助查询 (xxx /?)
net /?

在这里插入图片描述

(3).第三种命令详细帮助信息 (xxx /help)
net user /help

在这里插入图片描述

2.批处理文件参数传递

(1).什么是批处理文件参数传递

批处理文件参数传递: 就是动态的向bat文件中进行传递我们的参数。

基本格式: .bat文件接受参数使用 %num

(2).批处理演示示列 (%num)

创建一个批处理文件 a.bat 内容如下

注意事项: (一定要使用数字进行介绍,而且1代表接受第一个传递过来的参数,2代表接受第二个传递过来的参数。与我们的顺序无关)

  • 这里的 %1 是接受第一个参数 。
  • 这里的 %2 是接受第二个参数。
@echo off

echo %1
echo %2

pause

在这里插入图片描述

@echo off

echo %2
echo %1

pause

在这里插入图片描述

3.注释符扩展

(1).为什么需要注释符?

随着时间的推移,我们的记忆力可能会变得越来越差,所以我们需要使用注释的操作,然后对其进行标注。

  • 标注格式: rem xxxx xxx就是我们注解的内容
(2).注释符 (rem)
@echo off

rem 这里是我们的传递参数,分别传递两个参数。

echo %2
echo %1

在这里插入图片描述

4.炫酷命令提示符

(1).为什么要使用炫酷命令提示符

因为正常情况下我们的命令和文本都是白色的,那么我们应该怎么办呢? 我们这个时候就需要使用我们的 颜色命令 。

(2).背景颜色命令 (color)

修改命令颜色的格式:

color 背景色/字体颜色

在这里插入图片描述

temp 背景颜色为黑色,字体颜色为蓝色

color 01

在这里插入图片描述

(3).标题的命令(title)

修改命令的标题:

title "xxx"

在这里插入图片描述

5.时间相关命令

(1).为什么需要使用时间命令?

通常使用在创建我们的日志的时候,我们是需要进行打印我们的时间的。

(2).日期命令 (date)
date

在这里插入图片描述

rem 查看年//日 星期

date /T

rem 修改时间 (需要拥有权限)

date
(3).时间命令 (tme)

在这里插入图片描述

rem 展示我们的时间

time /T

rem 修改我们时间

time

6.启动命令

在这里插入图片描述

(1).启动一个新的cmd窗口
start

在这里插入图片描述

(2).启动一个新的cmd窗口并命名
start "myCmd"

在这里插入图片描述

(3).启动一个新的脚本或则程序
start 1.bat

在这里插入图片描述

(4).启动一个脚本程序但不新建一个cmd窗口
start /B 1.bat

在这里插入图片描述

7.调用其他的bat文件

(1).同目录下调用不同bat文件

1.bat脚本文件

dir

call 2.bat

pause

2.bat脚本文件

echo "hello world i'm is 2.bat"

pause;

在这里插入图片描述
注意: 当我们使用 call 调用一个新的脚本文件的时候,我们不能对其传入我们新的数据。

8.任务列表查看命令

tasklist: 主要用来显示在本地或远程机器上当前运行的进程列表。

(1).任务列表
tasklist

在这里插入图片描述

9.任务关闭命令

使用该工具按照进程 ID (PID) 或 映像名称终止任务。

(1).关闭指定进程
taskkill /pid 27344 /t

在这里插入图片描述

10.文件夹结构查看命令

我们可以使用文件夹结构查看命令进行对我们指定的文件夹进行树形结构操作。

(1).对当前目录进行树级目录
tree

在这里插入图片描述

11.关机命令

(1).使用可视化界面关闭远程主机的电脑

切记: 首先要打开防火墙。其次:要在同一个局域网下

shutdown /i

在这里插入图片描述

(2).关闭本机电脑

30秒后关闭自己的电脑

shutdown /s /t 30

12.计划任务命令

每天固定执行某一个 exe 程序

(1).at 命令已经在win 10 被弃用

在这里插入图片描述

13.批量处理环境变量

(1).修改我们系统的环境

查看我们的环境

set

在这里插入图片描述
输出我们OS变量的内容

echo %OS%

在这里插入图片描述

(四)、文件夹

1.目录浏览

(1).查看当前目录

1.使用dir命令我们可以查看当前文件夹下的信息

dir

在这里插入图片描述

(2).当前目录帮助

在这里插入图片描述

2.目录新建或删除

(1).创建文件
mkdir test

在这里插入图片描述

(2).递归创建我们的文件夹
mdkir  /a/b/c/d/e

在这里插入图片描述

(3).删除文件
rmdir a

在这里插入图片描述

3.目录切换命令

(1).切换命令
cd /xxx

4.目录重命名

(1)修改项目名
ren test test1

在这里插入图片描述

5.目录复制

(1).复制整个文件夹 (以及子文件)

复制整个文件夹、但是里面的文件不会复制

copy a1 a2

在这里插入图片描述

(2).单独复制一个文件 (txt)
copy 2.txt 3.txt

在这里插入图片描述

6.文件删除

(1).文件删除 (del)
del 3.txt

在这里插入图片描述

(2).删除所有以txt结尾的文件
del *.txt

在这里插入图片描述

7.文件剪切命令

(1).文件剪切命令
move b e:\

在这里插入图片描述

(五)、网络相关命令

1.用户命令

(1).用户操作命令

1.可以查看我们当前电脑的用户

net user

在这里插入图片描述
2.查看指定用户的信息

net user 22612

在这里插入图片描述

3.添加用户

net user lwt 123456 /add

在这里插入图片描述
4.删除用户

net user lwt /delete

在这里插入图片描述

2.用户组操作命令

1.查看本地用户组

net localgroup

在这里插入图片描述
2.查看指定用户所在的组

net user 22612

在这里插入图片描述
3.将已经存在的用户添加到指定用户组中..

net localgroup 用户组 被添加的用户名 /add

在这里插入图片描述
在这里插入图片描述

3.删除用户组中指定的用户名

net localgroup 用户组 被删除的用户名 /delete

在这里插入图片描述

2.主机连通性检测

(1).帮助命令

在这里插入图片描述

(2).联通外部网站
ping www.baidu.com

在这里插入图片描述

3.网络连接命令

(1).打开telnet功能

win10的telnet默认是关闭的,我们需要进行手动打开
在这里插入图片描述

(2).查看我们的telnet命令
telent /?

在这里插入图片描述

(3).连接我们自己本地的服务器
telnet 8.130.48.9 80

在这里插入图片描述

4.网络路由信息命令

判断我们本地主机和目标主机 经历了多少个网络设备、网络路由才进行联通的。

(1).tracert 帮助命令

在这里插入图片描述

(2).查看一下本机电脑的
tracert 8.130.48.9

我们发现我们需要经历 13 跳 才能进行访问到网址

在这里插入图片描述

5.网络适配器

(1).查看我们的ipconfig适配器

在这里插入图片描述

(2).释放我们本机的ip地址
ipconfig /release

相当于断开本机的网络
在这里插入图片描述

(3).重新获取我们本地的ip地址

相当于重连我们本地的网络

ipconfig /renew WLAN*

在这里插入图片描述

6.ARP信息命令

(1).认识ARP命令

在这里插入图片描述

(2).查看我们的arp表
arp -a

在这里插入图片描述

(六)、条件判断结构

1.if-else

(1).简单用列
@echo 

rem 演示if-else结构代码 判断字符串是否为规定的字符串。

rem 设置一个字符串变量为 hello , 在bat脚本中变量会自动识别变量的类型


set v=hello

rem 假如变量v等于hello的话


if %v%==hello (echo ok) else (echo no)


pause

在这里插入图片描述

2.文件存在案列

(1).简单案列
@echo off

rem 程序用来判断1.bat是否存在 exists

if exist E:\思维导图\1.bat (echo yes) else (echo no)

pause

在这里插入图片描述

3.文件判断删除

(1).简单案列
@echo off

rem 程序用来判断1.bat是否存在 exists

if exist E:\思维导图\1.txt (
    echo 文件被找到,即将执行删除
    del E:\思维导图\1.txt
) else (
    echo 文件未找到!!!
)


pause

注意:

  • 判断语句中最后一行是左括号,就可以进行分行操作。
  • 判断语句中不能进行内嵌判断语句。

(七)、循环结构

1.循环遍历文件夹

(1).遍历当前脚本所在的文件夹目录

1.遍历与当前脚本同级目录的所有文件夹名

  • /d 表示文件夹
  • (*) 表示遍历当前文件夹
@echo off

rem 遍历文件夹  /d 表示文件夹 遍历的文件夹名放到变量a 

for /d %%a in (*) do echo %%a

pause

在这里插入图片描述

(2).遍历指定文件夹
@echo off

rem 遍历文件夹  /d 表示文件夹 遍历的文件夹名放到变量a 

for /d %%c in (E:\*) do echo %%c

pause

在这里插入图片描述

(3).遍历指定文件夹并输入到txt文件中
@echo off

rem 遍历文件夹  /d 表示文件夹 遍历的文件夹名放到变量a 

for /d %%c in (E:\*) do echo %%c >> a.txt

pause

在这里插入图片描述

(4).循环遍历删除文件
@echo off

rem 遍历文件夹  /d 表示文件夹 遍历的文件夹名放到变量a 

for /d %%c in (*) do if %%c == b (rmdir %%c)

for /d %%c in (*) do echo %%c

pause

在这里插入图片描述

2.遍历目录及子目录下文件

(1).简单案列
for /r '目录路径' %%c in (匹配规则 *.txt) do 执行操作 %%c
@echo off

rem 遍历文件夹  /r 表示文件 遍历的文件夹名放到变量c


for /r E:\思维导图 %%c in (*.bat) do echo %%c

pause

在这里插入图片描述

3.遍历数字

简单案列
  • %L 表示我们是一个数字内容
@echo off

rem for循环我们的数字内容。 初始化为1,步长为1,最终为20

for /L %%v in (1,1,20) do echo %%v

pause

在这里插入图片描述

(2).连续ping组合使用
  • %1 是我们接受的第一个参数
@echo off

rem for循环我们的数字内容。 初始化为1,步长为1,最终为20

for /L %%v in (1,1,20) do ping %1.%%v

pause
  • 192.168.0.1 我们的局域网的操作,也就是说我们最后一个数字是变换的。
    在这里插入图片描述

4.遍历文件内容

(1).遍历出我们每一行的内容
@echo off

rem for 文件内容。 /F 表示一个文件, 遍历出每一行的内容

for /F %%v in (E:\思维导图\a.txt) do echo %%v

pause

在这里插入图片描述

(2).判断是否为指定的内容
@echo off

rem for 文件内容。 /F 表示一个文件, 假如内容为 E:\Shiro 那么我们就执行输出的操作

for /F %%v in (E:\思维导图\a.txt) do if %%v == E:\Shiro (echo %%v)

pause

在这里插入图片描述

(八)、Virus脚本分析

1.目录新建代码分析

(1).循环创建我们的目录
  • loop 只是一个标签,我们可以随时进行改变
@echo off

rem 进入到我们的文件夹

cd E:\思维导图

rem 循环创建test文件夹,并进入文件夹再创建

:loop
md test
cd test
goto loop

pause

在这里插入图片描述

(九)、编程信息示列

1.计算机信息展示

@echo off

rem 输出内容并覆盖
echo . > log.txt
echo Log File >> log.txt
echo . >> log.txt
rem 获取我们本机的用户名
echo User : %username% >> log.txt
rem 输出日期、时间
Date /t >> log.txt
Time /t >> log.txt
echo . >> log.txt
echo Process Ran by %username% >> log.txt
echo . >> log.txt
rem 任务列表输出到日志文件中
tasklist >> log.txt
echo . >> log.txt
echo Network Activities >> log.txt
rem 网络状态信息输出
netstat -s >> log.txt
pause

在这里插入图片描述

2.交互操作

类似于我们经常用的switch语句

@echo off

echo 1.a
echo 2.b
echo 3.c
echo 4.d

rem 创建一个类似于 switch 的语句
:first
echo 请输入您的选择 (1,2,3,4)

rem  /p 表示我们从控制台接受一个参数,创建一个变量 opt
set /p opt=
if %opt% == 1 goto one
if %opt% == 2 goto two
if %opt% == 3 goto three
if %opt% == 4 goto four
goto first

rem 设置四种条件,然后其中的执行结果如下
:one
echo 你选择了one
pause

:two
echo 你选择了two
pause

:three
echo 你选择了three
pause

:four
echo 你选择了four
pause


pause

在这里插入图片描述

3.计划执行

schtasks 命令

4.批处理文件转exe文件

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉士先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值