windows批处理命令
2022-07-12 09:40:37 2 举报
AI智能生成
windows下cmd批处理脚本命令使用及其例程,入门到精通,
作者其他创作
大纲/内容
基础知识
纯DOS与窗口DOS区别
实模式
保护模式
虚拟8086模式
windos命令环境常用符号
rem 注释 :: 也是注释
: 盘符
\根目录
.当前目录
..上一级目录
“”把包含空格的字串定义为一个字符串
: 盘符
\根目录
.当前目录
..上一级目录
“”把包含空格的字串定义为一个字符串
自定义窗口
设置标题:title
设置大小:mode 长,宽
修改颜色:color
设置大小:mode 长,宽
修改颜色:color
环境变量
查看环境变量
电脑->属性-》高级->环境变量 查看
cmd窗口,输入"set" 查看
set 命令
作用:
可显示、设置或删除 cmd.exe 环境变量等等。
可显示、设置或删除 cmd.exe 环境变量等等。
用法:
预定义的变量
被底层定义好可直接使用的变量:不会出现在 SET 显示的变量列表中
常用符号和程序
引用变量值:%xxx% (用两个%把变量包起来)
给path变量增加一个环境变量路径
set path=%path%;c;\users
set path=%path%;c;\users
变量errorlevel对应当前errorlevel数值:(查看前一个命令执行的状态)
- 正确是:0 错误是:非0 (判断时 1代表非0)
- echo %errorlevel%
exit 退出命令
正常情况是批处理文件执行完最后一行后退出
但必要时,可用exit在任意位置直接结束cmd窗口
正常情况是批处理文件执行完最后一行后退出
但必要时,可用exit在任意位置直接结束cmd窗口
- 退出时可设置错误码errorlevel
exit /b 3 rem 退出批处理文件设置错误码为3
(/b 指退出批处理,不关闭cmd窗口)
补充:/b 退出批处理,不关闭cmd窗口
意思是:在cmd窗口里打开并运行包含有exit /b 3的批处理文件时
cmd窗口不会关闭,同时可以查看设置的errorlevel值。
如果只是在文件夹下双击包含该命令的批处理文件,窗口是会被关闭的
意思是:在cmd窗口里打开并运行包含有exit /b 3的批处理文件时
cmd窗口不会关闭,同时可以查看设置的errorlevel值。
如果只是在文件夹下双击包含该命令的批处理文件,窗口是会被关闭的
findstr 查找并输出包含指定信息的行
- ipconfig /all | findstr DIR
echo 回显数据
"echo. " 表示换行
echo截取字符串 (补充)
set string=abcdefg
截取前五个字符 echo %string:~0,5%
截取最后五个 echo %string:~,-5%
从第4个字符开始,截取5个字符 echo %string:~3,5%
set string=abcdefg
截取前五个字符 echo %string:~0,5%
截取最后五个 echo %string:~,-5%
从第4个字符开始,截取5个字符 echo %string:~3,5%
批处理文件
什么是批处理
批处理(Batch),也称为批处理脚本。顾名思义,对某对象进行批量处理
就像生产线传送带上的设备,产线就是文件,传送带上的设备就是命令,用一个文件保存若干条命令并依次执行
就像生产线传送带上的设备,产线就是文件,传送带上的设备就是命令,用一个文件保存若干条命令并依次执行
语法
rem 注释
@ 跟在该符号后面的命令不回显(不显示在屏幕上)
echo on/off 该命令后的所有命令都不回显
@ 跟在该符号后面的命令不回显(不显示在屏幕上)
echo on/off 该命令后的所有命令都不回显
常用命令
重定向
输入重定向<
输出重定向>、>>
输出重定向>、>>
数字代码描述:
0:键盘输入 1:输出命令提示符到窗口 2:错误输出
0:键盘输入 1:输出命令提示符到窗口 2:错误输出
例如:
dir >right.txt 2>error.txt //错误输出 就输出到error.txt,正确就输到right.txt
dir 2>error.txt
dir >right.txt 2>error.txt //错误输出 就输出到error.txt,正确就输到right.txt
dir 2>error.txt
作用:把错误信息以文件的形式保存下来,便于分析错误
虚拟设备文件
CON:
根据在命令行中的位置,可分别代表键盘或显示器
根据在命令行中的位置,可分别代表键盘或显示器
[例]
copy con test.txt
con --代表键盘,可写一些短小的文本文件
copy test.txt con
con --代表显示器,将test.txt内容显示出来
copy con test.txt
con --代表键盘,可写一些短小的文本文件
copy test.txt con
con --代表显示器,将test.txt内容显示出来
NUL:
代表空设备,常与输出重定向搭配来隐藏程序运行的信息
代表空设备,常与输出重定向搭配来隐藏程序运行的信息
dir >nul 2>nul
意思是无论该语句执行是否成功,都屏蔽执行结果在屏幕上的显示。
意思是无论该语句执行是否成功,都屏蔽执行结果在屏幕上的显示。
特殊字符命令
"|" 管道命令符, 将第一条命令的结果作为第二条命令的参数使用
比如:
dir d:\ | find "P" 查找
dir d:\ | findstr "a" 筛选
dir d:\ | find "P" 查找
dir d:\ | findstr "a" 筛选
学以致用:将预置答复语作为人机对话命令的输入
del /p a.txt rem会要求人确认是否删除
ECHO 答复语|命令文件名
del /p a.txt rem会要求人确认是否删除
ECHO 答复语|命令文件名
“&”:把两个命令放在同一行,从左到右顺序执行
例:
dir & dir /b
dir & dir /b
&& 第一个命令失败时,后面的命令就不会执行
例:
di && c: & dir /b
di && c: & dir /b
"||" 第一个命令失败后才执行第二条命令
例
di || c: & dir /b
di || c: & dir /b
"( )"把多条命令集合当成一条命令,但是不能在里面对同一个变量即赋值又使用
if - else
紧跟if的语句结果为真,则执行接下来的语句
1、如果存在(不存在)某文件 则运行命令
if [NOT] exist filename command
if [NOT] exist filename command
if exist a.com del *.com
如果当前目录下存在a.com,则删除a.com
如果当前目录下存在a.com,则删除a.com
if not exist test1.txt (md test1) else (md test2)
如果当前目录下不存在test1.txt就建个test1目录,否则建立test2目录
如果当前目录下不存在test1.txt就建个test1目录,否则建立test2目录
2、根据比较两个字串结果来运行命令行
if [NOT] string1==string2 command
注:字符串比较是区分大小写的
要不区分大小写,需要加 /I
if [NOT] string1==string2 command
注:字符串比较是区分大小写的
要不区分大小写,需要加 /I
例
@echo off
set /p var1=请输入第一个比较的字符:
set /p var2=请输入第二个比软的字符:
if "%var1%"=="%var2%" (echo 输入的两个字符相同) else echo 输入的两个字符不相同
pause
@echo off
set /p var1=请输入第一个比较的字符:
set /p var2=请输入第二个比软的字符:
if "%var1%"=="%var2%" (echo 输入的两个字符相同) else echo 输入的两个字符不相同
pause
3、比较两个数值是否相等
if num1 关系符 num2 command
if num1 关系符 num2 command
批处理中大于小于不能用:“>”,"<"
set /p num=请输入一个数字
if %num% equ 10 (echo 输入正确) else (echo 输入错误)
if %num% equ 10 (echo 输入正确) else (echo 输入错误)
4、根据errolevel来运行命令
if %errorlevel% ==2 echo 相等
if %errorlevel% ==2 echo 相等
for
见后面
goto
作用:程序跳转,使用独占一行的冒号加字串来定义标签
格式:
echo hello word
goto part
echo im no1
:part
echo i am no2
pause
echo hello word
goto part
echo im no1
:part
echo i am no2
pause
注意:在if或者for语句内执行goto跳转
会使if和for失去原本的功能
会使if和for失去原本的功能
sort
定义:排序命令
作用:可以对文件里的字符串进行排序
(看帮助信息)
(看帮助信息)
a.txt
group
dog
apple
escap
fly
little
big
group
dog
apple
escap
fly
little
big
start
定义:启动一个单独的窗口,运行指定的程序
作用:可运行 盘符目录/文件/文件夹/程序
打开计算器:start calc
用法:start 盘符/文件/文件夹/程序
(属性看帮助信息 最大化|最小化)
(属性看帮助信息 最大化|最小化)
call
定义:程序的调用命令
作用:从一个批处理脚本中调用另一个批处理脚本,不会终止父批处理程序
例:一个批处理中调用另一个批处理
(若不使用call ,会在运行完另一个批处理后直接退出
不会继续运行)
(若不使用call ,会在运行完另一个批处理后直接退出
不会继续运行)
例1
@echo off rem call
echo 开始调用
call call1.bat
echo 调用成功
pause
@echo off rem call
echo 开始调用
call call1.bat
echo 调用成功
pause
rem call.bat
echo 我被调用了
echo 我被调用了
例2
@echo off
call call4.bat
@echo off
call call4.bat
@echo off
call :label
echo 1
echo 2
:label
echo 3
echo 4
call :label
echo 1
echo 2
:label
echo 3
echo 4
批处理文件之间的参数传递:
参数:%0-%9
【使用格式】:
- %0:是指批处理文件的本身 (可以调用批处理自身,实现自身循环)
- %1-%9:批处理的参数(相当于C中的形参)
%1 代表传入的第一个参数,%2 传入的第二个参数,其他同理
【使用格式】:
- 调用一个批处理文件时:文件名[空格] 参数1 参数2...
- cmd打开一个批文件时:文件名[空格] 参数1 参数2..
cd %~dp0 切换到当前批处理所在路径
pushd和popd
pushd和popd:是对一个目录栈进行操作,往往是配对使用
格式:pushd [path]
path:指定要成为当前目录的目录。
格式:pushd [path]
path:指定要成为当前目录的目录。
例:
假设当前工作目录为 c:\windows
pushd d:\"Program Files" --将当前工作目录压入栈中,改变工作目录路径为d:\Program Files--
然后输入命令: popd之后, --工作目录就会变回 c:\windows
假设当前工作目录为 c:\windows
pushd d:\"Program Files" --将当前工作目录压入栈中,改变工作目录路径为d:\Program Files--
然后输入命令: popd之后, --工作目录就会变回 c:\windows
ping
作用:检测网络连通性/网络质量 是否丢包
原理:
主机发送icmp数据包到另一台主机,另一台主机接收到后,返回一个icmp echo
通过两个数据包时间间隔,判断网络延时
主机发送icmp数据包到另一台主机,另一台主机接收到后,返回一个icmp echo
通过两个数据包时间间隔,判断网络延时
其他参数 /?
实战:网络故障,通过ping 排查
故障原因:TCP/IP协议出错、TCP/IP配置出错、物理故障、中毒等
排查:
- 检查本地TCP/IP是否安装正常:ping locahost
- 检查网关是否通畅(相当于出国的海关):ping 默认网关
- 检查电脑与外网是否通畅:ping 外网
FC
文件比较命令
功能:比较文件的异同
格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/B][/C][/N]
参数说明:
(1)选用/A参数,为ASCII码比较模式;
(2)选用/B参数,为二进制比较模式;
(3)选用/C参数,将大小写字符看成是相同的字符。
功能:比较文件的异同
格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/B][/C][/N]
参数说明:
(1)选用/A参数,为ASCII码比较模式;
(2)选用/B参数,为二进制比较模式;
(3)选用/C参数,将大小写字符看成是相同的字符。
shutdown
关闭计算机
(看帮助信息)
(看帮助信息)
高级命令
设置开机自启动
1、加入启动目录
GUI:
将文件快捷方式拖到:开始->所有程序->启动文件夹下
将文件快捷方式拖到:开始->所有程序->启动文件夹下
CLI:
将文件copy到启动目录下
启动目录:%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
将文件copy到启动目录下
启动目录:%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
2、创建计划任务
(该计划任务可在系统启动后执行,其他的属于用户态,需要登录后才能执行)
用于对程序进行定时启动的操作
(该计划任务可在系统启动后执行,其他的属于用户态,需要登录后才能执行)
用于对程序进行定时启动的操作
GUI:
1。控制面板->管理工具->任务计划程序->创建基本任务
2.打开运行窗口,输入:taskschd.msc->创建基本任务
1。控制面板->管理工具->任务计划程序->创建基本任务
2.打开运行窗口,输入:taskschd.msc->创建基本任务
CLI:
SCHTASKS /create /delete /showsid /change
允许管理员创建/删除/查询/更改运行和中止本地/远程系统上的计划任务
格式:
schtasks /create /tn TaskName /tr TaskRun
/scschedule[/momodifier][/dday][/mmonth[,month...]
[/st StartTime] [/sd StartDate] [/ed EndDate]
[/s computer [/u [domain\] user
/p password]] [/ru{[Domain\] User|"System"} [/rpPassword]]/?
SCHTASKS /create /delete /showsid /change
允许管理员创建/删除/查询/更改运行和中止本地/远程系统上的计划任务
格式:
schtasks /create /tn TaskName /tr TaskRun
/scschedule[/momodifier][/dday][/mmonth[,month...]
[/st StartTime] [/sd StartDate] [/ed EndDate]
[/s computer [/u [domain\] user
/p password]] [/ru{[Domain\] User|"System"} [/rpPassword]]/?
例1。计划任务在每次系统启动的时候运行test程序
schtasks /create /tn test /tr d:\test.bat /sc onstart
schtasks /create /tn test /tr d:\test.bat /sc onstart
例3.计划foxmail程序从 2020年9月14日起每五小时运行一次
schtasks /create /tn test3 /tr d:\foxmail\foxmail.exe /sc hourly /mo 5 /sd 09/14/2020
schtasks /create /tn test3 /tr d:\foxmail\foxmail.exe /sc hourly /mo 5 /sd 09/14/2020
例2.计划每天运行一次test1程序
schtasks /create /tn test1 /tr d:test.bat /sc daily /mo 1/st 8:00:00 /sd 09/14/2020 /ed 09/30/2020
schtasks /create /tn test1 /tr d:test.bat /sc daily /mo 1/st 8:00:00 /sd 09/14/2020 /ed 09/30/2020
- /mo 1 --mo默认为1,设置为2时 表示隔一天运行一次
- /sd和/ed --可以只设置其中一个or不设置,/sd 不设置,默认为当前日期 /ed 不适用于onstart onlogon onidle
更多例程,详见帮助文档或 https://www.cnblogs.com/mq0036/p/6761684.html
4、设置注册表1 LOCAL MACHINE
GUI:
打开运行窗口,输入regedit.找到注册表启动项位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run主键
右键新建->字符串值->双击创建的字符串->"数值数据"输入要开机自启的软件绝对路径+文件名
【注意:该操作默认路径为C:\Windows\System32,若在批处理文件里有创建文件的命令,又未设置
文件创建的绝对路径,那么,批处理创建的文件将会在这个目录下,而不是批处理文件所在的目录下】
打开运行窗口,输入regedit.找到注册表启动项位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run主键
右键新建->字符串值->双击创建的字符串->"数值数据"输入要开机自启的软件绝对路径+文件名
【注意:该操作默认路径为C:\Windows\System32,若在批处理文件里有创建文件的命令,又未设置
文件创建的绝对路径,那么,批处理创建的文件将会在这个目录下,而不是批处理文件所在的目录下】
CLI: 使用reg命令操作注册表
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test /t reg_sz /d d:\test.bad
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test /t reg_sz /d d:\test.bad
reg add 命令格式
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]
KeyName:注册表项的完整名
/v:所选项下要添加的值得名称
/t:要添加的值得数据类型,有 REG_SZ/REG_DWORD/REG_QWORD/REG_BINARY等待
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]
KeyName:注册表项的完整名
/v:所选项下要添加的值得名称
/t:要添加的值得数据类型,有 REG_SZ/REG_DWORD/REG_QWORD/REG_BINARY等待
5、设置注册表2 Current User
GUI:
打开运行窗口,输入regedit.找到注册表启动项位置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
【注意:该操作默认路径为C:\Windows\System32,若在批处理文件里有创建文件的命令,又未设置
文件创建的绝对路径,那么,批处理创建的文件将会在这个目录下,而不是批处理文件所在的目录下】
打开运行窗口,输入regedit.找到注册表启动项位置:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
【注意:该操作默认路径为C:\Windows\System32,若在批处理文件里有创建文件的命令,又未设置
文件创建的绝对路径,那么,批处理创建的文件将会在这个目录下,而不是批处理文件所在的目录下】
CLI: 使用reg命令操作注册表
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test /t reg_sz /d d:\test.bad
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v test /t reg_sz /d d:\test.bad
3、加到服务里
GUI:
1、右键“计算机”->管理->服务和应用程序->服务
2、打开运行窗口,输入:“services.msc”
1、右键“计算机”->管理->服务和应用程序->服务
2、打开运行窗口,输入:“services.msc”
CLI:
1、创建服务:sc create Test binPath= C:\test.bat
2、设置服务启动方式:sc config Test start= AUTO
3、启动服务:net start Test
4、删除服务:sc delete Test (Test为服务名称)
1、创建服务:sc create Test binPath= C:\test.bat
2、设置服务启动方式:sc config Test start= AUTO
3、启动服务:net start Test
4、删除服务:sc delete Test (Test为服务名称)
注意:
sc命令:用于与服务控制管理器和服务进行通信的命令行程序
“=”号后要有空格
sc命令:用于与服务控制管理器和服务进行通信的命令行程序
“=”号后要有空格
管理员模式和非管理员模式的区别
管理员是系统最高权限所有者,一个系统只能有一个最高权限的管理员。
新建的用户也是管理员,但指示管理员组中的一员,权限不如系统默认的Administrator
以管理员身份运行,是指用Administrator管理员身份运行。
普通双击运行程序是用的当前用户是:C:\User\SZ4343
管理员身份运行是用的Administrator,路径为:C\Windows\system32\
新建的用户也是管理员,但指示管理员组中的一员,权限不如系统默认的Administrator
以管理员身份运行,是指用Administrator管理员身份运行。
普通双击运行程序是用的当前用户是:C:\User\SZ4343
管理员身份运行是用的Administrator,路径为:C\Windows\system32\
管理员权限运行
自行检查如果不是管理员权限运行就提示
>nul 2>&1 cacls %SystemRoot%\System32\config
if errorlevel 1 (
echo 请以管理员权限运行
pause
exit )
pushd %~dp0 压栈 进入批处理所在文件夹,操作完再popd
if errorlevel 1 (
echo 请以管理员权限运行
pause
exit )
pushd %~dp0 压栈 进入批处理所在文件夹,操作完再popd
NET
NET START
作用:启动服务,或显示已启动服务的列表。
命令格式:net start [service]
命令格式:net start [service]
例如:net start w32time --开启时间服务器
注意:如果服务名有空格,要用双引号将服务名引起来
注意:如果服务名有空格,要用双引号将服务名引起来
NET STOP
作用:停止 Windows NT 网络服务。
命令格式:net stop [service]
命令格式:net stop [service]
NET TIME
作用:使计算机的时钟与另一台计算机或域的时间同步。
命令格式:net time [\\computername | /domain[:name]] [/set]
参数介绍:
(1)\\computername --指定要检查或与之同步的服务器的名称
(2)/domain[:name] --指定要与其时间同步的域。
(3)/set --使本计算机时钟与指定计算机或域的时钟同步
命令格式:net time [\\computername | /domain[:name]] [/set]
参数介绍:
(1)\\computername --指定要检查或与之同步的服务器的名称
(2)/domain[:name] --指定要与其时间同步的域。
(3)/set --使本计算机时钟与指定计算机或域的时钟同步
开启时间服务器:net start w32time
获取本地时间:net time \\127.0.0.1
获取并显示其他服务器的时间:net time \\[ip地址] 192.168.99.194
设置本计算机与指定计算机时钟同步:net time \\[ip地址] /set
显示本地实际与指定计算机的时间差: (帮助文档)
w32tm /stripchart /computer:192.168.99.194 /dataonly
w32tm /stripchart /computer:192.168.99.194 /dataonly
Net Pause
作用:暂停正在运行的服务。
命令格式:net pause [service]
命令格式:net pause [service]
Net Continue
作用:重新激活挂起的服务。
命令格式:net continue [service]
命令格式:net continue [service]
NET USER
作用:添加或更改用户帐号或显示用户帐号信息。该命令也可以写为 net users。
命令格式:net user [username [password | *] [options]] [/domain]
参数介绍:(1)键入不带参数的net user查看计算机上的用户帐号列表。
(2)username添加、删除、更改或查看用户帐号名。
(3)password为用户帐号分配或更改密码。
(4)*提示输入密码。
(5)/domain在计算机主域的主域控制器中执行操作。
简单事例:net user yfang查看用户YFANG的信息
命令格式:net user [username [password | *] [options]] [/domain]
参数介绍:(1)键入不带参数的net user查看计算机上的用户帐号列表。
(2)username添加、删除、更改或查看用户帐号名。
(3)password为用户帐号分配或更改密码。
(4)*提示输入密码。
(5)/domain在计算机主域的主域控制器中执行操作。
简单事例:net user yfang查看用户YFANG的信息
NET VIEW
作用:显示域列表、计算机列表或指定计算机的共享资源列表。
命令格式:net view [\\computername | /domain[:domainname]]
参数介绍:
(1)键入不带参数的net view显示当前域的计算机列表。
(2)\\computername 指定要查看其共享资源的计算机。
(3)/domain[:domainname]指定要查看其可用计算机的域。
简单事例:(1)net view \\YFANG查看YFANG的共享资源列表。
(2)net view /domain:LOVE查看LOVE域中的机器列表。
命令格式:net view [\\computername | /domain[:domainname]]
参数介绍:
(1)键入不带参数的net view显示当前域的计算机列表。
(2)\\computername 指定要查看其共享资源的计算机。
(3)/domain[:domainname]指定要查看其可用计算机的域。
简单事例:(1)net view \\YFANG查看YFANG的共享资源列表。
(2)net view /domain:LOVE查看LOVE域中的机器列表。
NET USE
作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。
命令格式:net use [devicename | *] [\\computername\sharename[\volume]]
[password | *]] [/user:[domainname\]username] [[/delete] |
[/persistent:{yes | no}]]
参数介绍:
(1) 键入不带参数的net use列出网络连接。
(2) devicename指定要连接到的资源名称或要断开的设备名称。
(3) \\computername\sharename服务器及共享资源的名称。
(4) password访问共享资源的密码。
(5) *提示键入密码。
(6) /user指定进行连接的另外一个用户。
(7) domainname指定另一个域。
(8) username指定登录的用户名。
(9) /home将用户连接到其宿主目录。
(10) /delete取消指定网络连接。
(11)/persistent控制永久网络连接的使用。
简单事例: (1)net use e: \\YFANG\TEMP将\\YFANG\TEMP目录建立为E盘
(2)net use e: \\YFANG\TEMP /delete断开连接
命令格式:net use [devicename | *] [\\computername\sharename[\volume]]
[password | *]] [/user:[domainname\]username] [[/delete] |
[/persistent:{yes | no}]]
参数介绍:
(1) 键入不带参数的net use列出网络连接。
(2) devicename指定要连接到的资源名称或要断开的设备名称。
(3) \\computername\sharename服务器及共享资源的名称。
(4) password访问共享资源的密码。
(5) *提示键入密码。
(6) /user指定进行连接的另外一个用户。
(7) domainname指定另一个域。
(8) username指定登录的用户名。
(9) /home将用户连接到其宿主目录。
(10) /delete取消指定网络连接。
(11)/persistent控制永久网络连接的使用。
简单事例: (1)net use e: \\YFANG\TEMP将\\YFANG\TEMP目录建立为E盘
(2)net use e: \\YFANG\TEMP /delete断开连接
操作磁盘
convert: 将FAT格式磁盘转换为NTFS格式
配置磁盘:diskpart
- 列出磁盘:list disk
- 选择磁盘0:select disk 0
- 格式化磁盘:clean
- 创建主分区:creat partition primary
- 定义磁盘:format fs=ntfs quick label="E"
如果要配置磁盘,可以将其写到批处理中
可以简化操作,提高效率
可以简化操作,提高效率
有时候非法/强制关机,造成磁盘错误
磁盘修复:chkdsk (见帮助信息/f /r )
磁盘修复:chkdsk (见帮助信息/f /r )
netstat
网络管理命令
用来查询或统计 计算机本地的tcp/ip网络链接
/? /a/n/o
用来查询或统计 计算机本地的tcp/ip网络链接
/? /a/n/o
状态:
- Listening 监听状态,等待连接
- establishd 已经建立了连接
- time_wait 超时,等待连接时未成功建立连接
在用软件时,报错误:某端口被占用。怎么办?
查看时哪个进程占用了端口,把进程杀掉,解除占用
查看时哪个进程占用了端口,把进程杀掉,解除占用
- netstat /ano 查看端口被占用的进程号 |findstr
- tasklist 枚举任务进程 |findstr
- taskkill 杀死任务进程 /im *exe /f
80端口为例,浏览网页时用的
tasklist:显示在本地或远程机器上,当前运行的进程
查看远程系统的进程::
“tasklist /s 218.22.123.26 /u jtdd /p 12345678”
提示:tasklist查看远程系统进程时,需要远程机器RPC 服务器的支持,否则,该命令不能正常使用。
“tasklist /s 218.22.123.26 /u jtdd /p 12345678”
提示:tasklist查看远程系统进程时,需要远程机器RPC 服务器的支持,否则,该命令不能正常使用。
taskkill 杀死进程
按进程名查杀:/IM /F
taskkill /IM notepad.exe
按PID查杀:
taskkill /pid 4333
按进程名查杀:/IM /F
taskkill /IM notepad.exe
按PID查杀:
taskkill /pid 4333
wmic 命令
是windows下提供访问硬件和系统信息的接口
例:
1、显示CPU信息
wmic cpu list brief
2、显示磁盘信息
wmic diskdrive list brief
3、显示虚拟内存信息
wmic pagefile
4、显示c盘的相关信息
wmic logicaldisk where name="c:" get deviceid,size,freespace,filesystem,description
例:
1、显示CPU信息
wmic cpu list brief
2、显示磁盘信息
wmic diskdrive list brief
3、显示虚拟内存信息
wmic pagefile
4、显示c盘的相关信息
wmic logicaldisk where name="c:" get deviceid,size,freespace,filesystem,description
磁盘管理:可查看磁盘相关属性,更改卷标、盘符等等
进程管理
结束进程、创建进程、查询指定进程信息
在远程计算机上创建或结束进程,
重启或关闭远程计算机
结束进程、创建进程、查询指定进程信息
在远程计算机上创建或结束进程,
重启或关闭远程计算机
系统服务进程管理:
如:
获取指定服务进程pid号、显示正在进行的服务
启动一个服务、停止一个服务、显示开机自启动切正运行的服务 等等
如:
获取指定服务进程pid号、显示正在进行的服务
启动一个服务、停止一个服务、显示开机自启动切正运行的服务 等等
文件管理
复制/删除/更名文件
全盘查找指定文件
获取文件的创建、访问、修改时间
复制/删除/更名文件
全盘查找指定文件
获取文件的创建、访问、修改时间
ipconfig
显示系统中网卡IP地址和mac地址等信息
ipconfig /all
ipconfig /all
for命令
分析“假病毒.bat”
格式:
for %%variable IN (set) DO command [command-parameters]
for [参数] %%变量名 IN (相关文件或命令) DO 执行的命令
for %%variable IN (set) DO command [command-parameters]
for [参数] %%变量名 IN (相关文件或命令) DO 执行的命令
- 参数:for有4个参数 /d /l /r /f 他们的作用我在右边用例子解释
- %%变量名 :制定一个单一字母,可以是小写a-z或者大写A-Z,区分大小写,FOR会把每个读取到的值给他;
- IN:命令固定格式,照写就是了;
- (set/相关文件或命令) :指定一个或一组文件。可以使用通配符。FOR要把什么东西读取然后赋值给前面的变量
- do:命令固定格式,照写!
- 执行的命令:对每个变量的值要执行什么操作就写在这.
注意:
在批处理里,%%variable要用两个%
在cmd里 只用一个%
在cmd里 只用一个%
/d 仅目录
格式 for /d %%variable in (set) do command
for /d %%i in (*) do @echo %%i
pause
例2:显示当前目录下名字只有1-3个字母的目录
格式 for /d %%variable in (set) do command
- 如果 set ( 相关文件或命令) 包含通配符(* 和 ?),
将对与 set 相匹配的每个目录执行指定的 命令。 - 主要用于搜索目录,不会搜索文件
for /d %%i in (*) do @echo %%i
pause
例2:显示当前目录下名字只有1-3个字母的目录
主要用于目录搜索,不会搜索文件,
/D 参数只能显示当前目录下的目录名字
特别说明:只会搜索指定目录下的目录,
不会搜索再下一级的目录。只能显示当前目录下的目录名字
/D 参数只能显示当前目录下的目录名字
特别说明:只会搜索指定目录下的目录,
不会搜索再下一级的目录。只能显示当前目录下的目录名字
/r 比/d更强大,可以进入根目录树,并把指定目录及其子目录里的每个文件名都读出来
在每个目录中都去执行 for 语句。如果在 /R 后没有指定目录,则认为是
当前目录。
例:找出D盘所有的exe文件 或者.txt 或者YouDao的可执行文件
for /r c:/ %%i in (*.exe) do @echo %%i
在每个目录中都去执行 for 语句。如果在 /R 后没有指定目录,则认为是
当前目录。
例:找出D盘所有的exe文件 或者.txt 或者YouDao的可执行文件
for /r c:/ %%i in (*.exe) do @echo %%i
/L 表示以以增量形式从开始到结束的一个数字序列。可以使用负的 Step
格式:for /L %% Variable in (Start#,Step#,End#) do Command
起始值 (Start#),然后逐步执行一组范围的Setp#值,直到该值超过终止值 (End#) 循环结束
for /l %%i in (1,1,5) do @echo %%i rem 步进增步(1,1,5),步进递减(5,-1,1)
pause
格式:for /L %% Variable in (Start#,Step#,End#) do Command
起始值 (Start#),然后逐步执行一组范围的Setp#值,直到该值超过终止值 (End#) 循环结束
- 例1:生成序列
for /l %%i in (1,1,5) do @echo %%i rem 步进增步(1,1,5),步进递减(5,-1,1)
pause
- 例2:打开多个cmd
- 例3:一次连续创建多个目录文件夹 for /l %%i in (1,1,5) do md %%i
例4:将a.txt例每行的字符作为文件名,创建文件夹 for /f %%i in (a.txt) do md %%i
/f 迭代及文件解析-使用文件解析来处理命令输出、字符串及文件内容
格式:
FOR /F ["options"] %%i IN (file) DO command remile代表一个或多个文件
FOR /F ["options"] %%i IN ("string") DO command remstring 代表字符串
FOR /F ["options"] %%i IN ('command') DO command ["options"] 可选项
【说明】:file为文件名,for会依次将file中的文件打开,并且在进行到下一个文件之前将文件读取到内存,
读取方式:是把文件逐行读入,以空格或TAB为默认分隔符将每行切片
例1:显示a.txt中的内容。type F.txt
for /f %%i in Fa.txt) do echo %%i
【执行顺序:先从括号执行,因为有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,
把它作为一个集合,并且以每一行作为一个元素】
这里显示不全,
对比加深印象:
for /f %%i in (a.txt,b.txt) do echo %%i
for %%i in (a.txt) do echo %%i
格式:
FOR /F ["options"] %%i IN (file) DO command remile代表一个或多个文件
FOR /F ["options"] %%i IN ("string") DO command remstring 代表字符串
FOR /F ["options"] %%i IN ('command') DO command ["options"] 可选项
【说明】:file为文件名,for会依次将file中的文件打开,并且在进行到下一个文件之前将文件读取到内存,
读取方式:是把文件逐行读入,以空格或TAB为默认分隔符将每行切片
例1:显示a.txt中的内容。type F.txt
for /f %%i in Fa.txt) do echo %%i
【执行顺序:先从括号执行,因为有参数/f,所以for会先打开a.txt,然后读出a.txt里面的所有内容,
把它作为一个集合,并且以每一行作为一个元素】
这里显示不全,
对比加深印象:
for /f %%i in (a.txt,b.txt) do echo %%i
for %%i in (a.txt) do echo %%i
["options"]关键字参数
1、delims= 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
delims将数据分割后,第一个分隔符前面的数据赋值给变量,要显示后面部分的 怎么办呢?
2、tokens=x,y, m-n 取以行为元素被分割后的哪一个或者哪几个
当有多个token时,变量必须是按照英文字母顺序排列的,%%j不能换成%%k,因为i后面是j,要显示更多列,往后依次排列
for /f "skip=2 delims=" %%i in (F.txt) do echo %%i
4、eol=c 指定当一行以什么符号开始时,就忽略它
for /f "eol=; delims=" %%i in (F.txt) do echo %%i rem 除去以分号开头的行,把其他行显示出来
5、usebackq 引入它的目的是为了处理带有空格的文件名。
dos里,如果你要处理的文件名或路径中含有空格,直接使用会提示找不到文件,如果你双引号将文件名或路径括起来。
这时会被作为字符串处理,也不是作为文件处理。为应对这个情况。usebackq就出现了
加入此参数,括号中的加双引号的集合,系统就认为是文件了;真正的字符串要加单引号;命令要加反引号。
FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%i in ("d:/test.txt") do echo %%i %%j %%k
1、delims= 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
- 用法: for /f "delims= " %%i in (F.txt) do echo %%i (例2)
delims将数据分割后,第一个分隔符前面的数据赋值给变量,要显示后面部分的 怎么办呢?
2、tokens=x,y, m-n 取以行为元素被分割后的哪一个或者哪几个
- 用法:for /f "tokens=2 delims= "%%i in (F.txt) do echo %%i (例3)
- token支持*通配符,如果要以空格分开的第2、3列的,就 token=2,3 或 token=2-3
当有多个token时,变量必须是按照英文字母顺序排列的,%%j不能换成%%k,因为i后面是j,要显示更多列,往后依次排列
- 通配符*,就是把这一行全部或者这一行的剩余部分当作一个元素。
for /f "skip=2 delims=" %%i in (F.txt) do echo %%i
4、eol=c 指定当一行以什么符号开始时,就忽略它
for /f "eol=; delims=" %%i in (F.txt) do echo %%i rem 除去以分号开头的行,把其他行显示出来
5、usebackq 引入它的目的是为了处理带有空格的文件名。
dos里,如果你要处理的文件名或路径中含有空格,直接使用会提示找不到文件,如果你双引号将文件名或路径括起来。
这时会被作为字符串处理,也不是作为文件处理。为应对这个情况。usebackq就出现了
加入此参数,括号中的加双引号的集合,系统就认为是文件了;真正的字符串要加单引号;命令要加反引号。
FOR /F "usebackq eol=; tokens=1,2* delims=,- " %%i in ("d:/test.txt") do echo %%i %%j %%k
使用和不适用usebackq时的区别
版本信息:v1.0
制作人:金靖淋
工号:sz4343
地点:深圳研祥智谷
时间:2020.9.6-7
【修改】
1.学习dos基础命令
2.构建大致框架
制作人:金靖淋
工号:sz4343
地点:深圳研祥智谷
时间:2020.9.6-7
【修改】
1.学习dos基础命令
2.构建大致框架
版本信息:v1.1
时间:2020.9.9
【修改】
1.增加dos与Win区别及其他贴图
2.增加内容-批处理参数传递
3.增加wmic拓展
3.增加内容-NET命令
时间:2020.9.9
【修改】
1.增加dos与Win区别及其他贴图
2.增加内容-批处理参数传递
3.增加wmic拓展
3.增加内容-NET命令
版本信息:v1.2
时间:2020.9.11
【修改】
1.标注重点&非重点
2.增加for的内容-usebackq
3.增加 taskstart&kill部分
时间:2020.9.11
【修改】
1.标注重点&非重点
2.增加for的内容-usebackq
3.增加 taskstart&kill部分
版本信息:v1.3
时间:2020.9.14
【修改】
1.增加:开机自启动
2.增加:net time时间同步
时间:2020.9.14
【修改】
1.增加:开机自启动
2.增加:net time时间同步
收藏
0 条评论
下一页