windows批处理命令
2022-07-12 09:40:37 2 举报
AI智能生成
windows下cmd批处理脚本命令使用及其例程,入门到精通,
作者其他创作
大纲/内容
实模式
保护模式
虚拟8086模式
纯DOS与窗口DOS区别
rem 注释 :: 也是注释: 盘符 \\根目录 .当前目录 ..上一级目录 “”把包含空格的字串定义为一个字符串
设置标题:title设置大小:mode 长,宽修改颜色:color
自定义窗口
windos命令环境常用符号
电脑->属性-》高级->环境变量 查看
cmd窗口,输入\"set\" 查看
查看环境变量
作用: 可显示、设置或删除 cmd.exe 环境变量等等。
用法:
被底层定义好可直接使用的变量:不会出现在 SET 显示的变量列表中
预定义的变量
set 命令
引用变量值:%xxx% (用两个%把变量包起来)
给path变量增加一个环境变量路径set path=%path%;c;\\users
变量errorlevel对应当前errorlevel数值:(查看前一个命令执行的状态)正确是:0 错误是:非0 (判断时 1代表非0)查看方式:echo %errorlevel%
补充:/b 退出批处理,不关闭cmd窗口意思是:在cmd窗口里打开并运行包含有exit /b 3的批处理文件时cmd窗口不会关闭,同时可以查看设置的errorlevel值。如果只是在文件夹下双击包含该命令的批处理文件,窗口是会被关闭的
exit 退出命令正常情况是批处理文件执行完最后一行后退出但必要时,可用exit在任意位置直接结束cmd窗口退出时可设置错误码errorlevelexit /b 3 rem 退出批处理文件设置错误码为3(/b 指退出批处理,不关闭cmd窗口)
findstr 查找并输出包含指定信息的行ipconfig /all | findstr DIR
\"echo. \" 表示换行
echo截取字符串 (补充)set string=abcdefgfont color=\"#f68b1f\
echo 回显数据
常用符号和程序
环境变量
基础知识
批处理(Batch),也称为批处理脚本。顾名思义,对某对象进行批量处理就像生产线传送带上的设备,产线就是文件,传送带上的设备就是命令,用一个文件保存若干条命令并依次执行
什么是批处理
rem 注释@ 跟在该符号后面的命令不回显(不显示在屏幕上)echo on/off 该命令后的所有命令都不回显
语法
输入重定向<输出重定向>、>>
数字代码描述:0:键盘输入 1:输出命令提示符到窗口 2:错误输出
作用:把错误信息以文件的形式保存下来,便于分析错误
重定向
[例]copy con test.txt con --代表键盘,可写一些短小的文本文件copy test.txt con con --代表显示器,将test.txt内容显示出来
CON:根据在命令行中的位置,可分别代表键盘或显示器
dir >nul 2>nul意思是无论该语句执行是否成功,都屏蔽执行结果在屏幕上的显示。
NUL:代表空设备,常与输出重定向搭配来隐藏程序运行的信息
虚拟设备文件
比如:dir d:\\ | find \"P\" 查找dir d:\\ | findstr \"a\" 筛选
学以致用:将预置答复语作为人机对话命令的输入 del /p a.txt rem会要求人确认是否删除ECHO 答复语|命令文件名
\"|\" 管道命令符, 将第一条命令的结果作为第二条命令的参数使用
例:dir & dir /b
“&”:把两个命令放在同一行,从左到右顺序执行
例:di && c: & dir /b
&& 第一个命令失败时,后面的命令就不会执行
例di || c: & dir /b
\"||\" 第一个命令失败后才执行第二条命令
\"( )\"把多条命令集合当成一条命令,但是不能在里面对同一个变量即赋值又使用
特殊字符命令
组合使用:如果dir执行成功 打印success执行失败,打印error&& ||
紧跟if的语句结果为真,则执行接下来的语句
if exist a.com del *.com如果当前目录下存在a.com,则删除a.com
if not exist test1.txt (md test1) else (md test2)如果当前目录下不存在test1.txt就建个test1目录,否则建立test2目录
1、如果存在(不存在)某文件 则运行命令if [NOT] exist filename command
例@echo offset /p var1=请输入第一个比较的字符:set /p var2=请输入第二个比软的字符:if \"%var1%\"==\"%var2%\" (echo 输入的两个字符相同) else echo 输入的两个字符不相同pause
2、根据比较两个字串结果来运行命令行if [NOT] string1==string2 command注:字符串比较是区分大小写的 要不区分大小写,需要加 /I
font color=\"#c41230\
set /p num=请输入一个数字if %num% equ 10 (echo 输入正确) else (echo 输入错误)
3、比较两个数值是否相等if num1 关系符 num2 command
4、根据errolevel来运行命令if %errorlevel% ==2 echo 相等
if - else
见后面
for
作用:程序跳转,使用独占一行的冒号加字串来定义标签
注意:在if或者for语句内执行goto跳转会使if和for失去原本的功能
格式:echo hello wordgoto partecho im no1:partecho i am no2pause
goto
定义:排序命令
a.txtgroupdogappleescapflylittlebig
作用:可以对文件里的字符串进行排序(看帮助信息)
sort
定义:启动一个单独的窗口,运行指定的程序
打开计算器:start calc
作用:可运行 盘符目录/文件/文件夹/程序
用法:start 盘符/文件/文件夹/程序 (属性看帮助信息 最大化|最小化)
start
定义:程序的调用命令
作用:从一个批处理脚本中调用另一个批处理脚本,不会终止父批处理程序
rem call.batecho 我被调用了
例1@echo off rem callecho 开始调用call call1.batecho 调用成功pause
@echo offcall :labelecho 1echo 2 :labelecho 3echo 4
例2@echo offcall call4.bat
例:一个批处理中调用另一个批处理(若不使用call ,会在运行完另一个批处理后直接退出不会继续运行)
cd %~dp0 切换到当前批处理所在路径
批处理文件之间的参数传递:
call
例:假设当前工作目录为 c:\\windowspushd d:\\\"Program Files\" font color=\"#662c90\
pushd和popd:是对一个目录栈进行操作,往往是配对使用格式:pushd [path] path:指定要成为当前目录的目录。
pushd和popd
作用:检测网络连通性/网络质量 是否丢包
原理:主机发送icmp数据包到另一台主机,另一台主机接收到后,返回一个icmp echo通过两个数据包时间间隔,判断网络延时
其他参数 /?
故障原因:TCP/IP协议出错、TCP/IP配置出错、物理故障、中毒等
排查:检查本地TCP/IP是否安装正常:ping locahost检查网关是否通畅(相当于出国的海关):ping 默认网关检查电脑与外网是否通畅:ping 外网
实战:网络故障,通过ping 排查
ping
文件比较命令功能:比较文件的异同格式:FC[盘符:][路径名]〈文件名〉[盘符:][路径名][文件名][/A][/B][/C][/N]参数说明:(1)选用/A参数,为ASCII码比较模式; (2)选用/B参数,为二进制比较模式; (3)选用/C参数,将大小写字符看成是相同的字符。
FC
关闭计算机 (看帮助信息)
shutdown
常用命令
GUI:将文件快捷方式拖到:开始->所有程序->启动文件夹下
CLI:将文件copy到启动目录下启动目录:%userprofile%\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup
1、加入启动目录
GUI:1。控制面板->管理工具->任务计划程序->创建基本任务2.打开运行窗口,输入:taskschd.msc->创建基本任务
例1。计划任务在每次系统启动的时候运行test程序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
例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/mo 1 --mo默认为1,设置为2时 表示隔一天运行一次/sd和/ed --可以只设置其中一个or不设置,/sd 不设置,默认为当前日期 /ed 不适用于onstart onlogon onidle
更多例程,详见帮助文档或 https://www.cnblogs.com/mq0036/p/6761684.html
2、创建计划任务(该计划任务可在系统启动后执行,其他的属于用户态,需要登录后才能执行) 用于对程序进行定时启动的操作
GUI:打开运行窗口,输入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
4、设置注册表1 LOCAL MACHINE
GUI:打开运行窗口,输入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
5、设置注册表2 Current User
GUI:1、右键“计算机”->管理->服务和应用程序->服务2、打开运行窗口,输入:“services.msc”
注意:sc命令:用于与服务控制管理器和服务进行通信的命令行程序“=”号后要有空格
CLI:1、创建服务:sc create Test binPath= C:\\test.bat 2、设置服务启动方式:sc config Test start= AUTO3、启动服务:net start Test4、删除服务:sc delete Test (Test为服务名称)
3、加到服务里
设置开机自启动
管理员模式和非管理员模式的区别
>nul 2>&1 cacls %SystemRoot%\\System32\\configif errorlevel 1 ( echo 请以管理员权限运行 pause exit )pushd %~dp0 压栈 进入批处理所在文件夹,操作完再popd
自行检查如果不是管理员权限运行就提示
管理员权限运行
例如:net start w32time --开启时间服务器注意:如果服务名有空格,要用双引号将服务名引起来
作用:启动服务,或显示已启动服务的列表。命令格式:net start [service]
NET START
作用:停止 Windows NT 网络服务。命令格式:net stop [service]
NET STOP
开启时间服务器: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
作用:使计算机的时钟与另一台计算机或域的时间同步。命令格式:net time [\\\\computername | /domain[:name]] [/set]参数介绍:(1)\\\\computername --指定要检查或与之同步的服务器的名称(2)/domain[:name] --指定要与其时间同步的域。(3)/set --使本计算机时钟与指定计算机或域的时钟同步
同步时间的计算机必须在同一个域中
NET TIME
作用:暂停正在运行的服务。命令格式:net pause [service]
Net Pause
作用:重新激活挂起的服务。命令格式:net continue [service]
Net Continue
作用:添加或更改用户帐号或显示用户帐号信息。该命令也可以写为 net users。命令格式:net user [username [password | *] [options]] [/domain]参数介绍:(1)键入不带参数的net user查看计算机上的用户帐号列表。(2)username添加、删除、更改或查看用户帐号名。(3)password为用户帐号分配或更改密码。(4)*提示输入密码。(5)/domain在计算机主域的主域控制器中执行操作。简单事例:net user yfang查看用户YFANG的信息
NET USER
作用:显示域列表、计算机列表或指定计算机的共享资源列表。命令格式: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
作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。命令格式: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
NET
convert: 将FAT格式磁盘转换为NTFS格式
如果要配置磁盘,可以将其写到批处理中可以简化操作,提高效率
配置磁盘:diskpart列出磁盘:list disk选择磁盘0:select disk 0格式化磁盘:clean创建主分区:creat partition primary定义磁盘:format fs=ntfs quick label=\"E\"
有时候非法/强制关机,造成磁盘错误磁盘修复:chkdsk (见帮助信息/f /r )
操作磁盘
状态:Listening 监听状态,等待连接establishd 已经建立了连接time_wait 超时,等待连接时未成功建立连接
网络管理命令用来查询或统计 计算机本地的tcp/ip网络链接 /? /a/n/o
80端口为例,浏览网页时用的
在用软件时,报错误:某端口被占用。怎么办?查看时哪个进程占用了端口,把进程杀掉,解除占用netstat /ano 查看端口被占用的进程号 |findstrtasklist 枚举任务进程 |findstrtaskkill 杀死任务进程 /im *exe /f
查看远程系统的进程::“tasklist /s 218.22.123.26 /u jtdd /p 12345678”提示:tasklist查看远程系统进程时,需要远程机器RPC 服务器的支持,否则,该命令不能正常使用。
tasklist:显示在本地或远程机器上,当前运行的进程
taskkill 杀死进程按进程名查杀:/IM /F taskkill /IM notepad.exe按PID查杀: taskkill /pid 4333
netstat
磁盘管理:可查看磁盘相关属性,更改卷标、盘符等等
进程管理结束进程、创建进程、查询指定进程信息在远程计算机上创建或结束进程,重启或关闭远程计算机
系统服务进程管理:如:获取指定服务进程pid号、显示正在进行的服务启动一个服务、停止一个服务、显示开机自启动切正运行的服务 等等
文件管理复制/删除/更名文件全盘查找指定文件获取文件的创建、访问、修改时间
是windows下提供访问硬件和系统信息的接口例:1、显示CPU信息wmic cpu list brief2、显示磁盘信息wmic diskdrive list brief3、显示虚拟内存信息wmic pagefile4、显示c盘的相关信息wmic logicaldisk where name=\"c:\
了解
wmic 命令
显示系统中网卡IP地址和mac地址等信息ipconfig /all
ipconfig
高级命令
批处理文件
分析“假病毒.bat”
在批处理里,%%variable要用两个%在cmd里 只用一个%
注意:
/d 仅目录格式 for /d %%variable in (set) dospan style=\"font-size: inherit;\
/r 比/d更强大,可以进入根目录树,并把指定目录及其子目录里的每个文件名都读出来在每个目录中都去执行 for 语句。如果在 /R 后没有指定目录,则认为是当前目录。例:找出D盘所有的exe文件 或者.txt 或者YouDao的可执行文件 for /r c:/ %%i in (*.exe) do @echo %%i
/L 表示以以增量形式从开始到结束的一个数字序列。可以使用负的 Step格式:font color=\"#0076b3\
[\"options\"]关键字参数1、delims= 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键用法: for /f \"delims= \" %%i in (F.txt) do echo %%i (例2)delims将数据分割后,第一个分隔符前面的数据赋值给变量,要显示后面部分的 怎么办呢?font color=\"#f15a23\
使用和不适用usebackq时的区别
/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.txtspan style=\
格式:for %%variable IN (set) DO command [command-parameters]for [参数] %%变量名 IN (相关文件或命令) DO 执行的命令参数:for有4个参数 /d /l /r /f 他们的作用我在右边用例子解释%%变量名 :制定一个单一字母,span style=\"font-size: inherit;\
for命令
版本信息:v1.3时间:2020.9.14【修改】1.增加:开机自启动2.增加:net time时间同步
版本信息:v1.2时间:2020.9.11【修改】1.标注重点&非重点2.增加for的内容-usebackq3.增加 taskstart&kill部分
版本信息:v1.1时间:2020.9.9【修改】1.增加dos与Win区别及其他贴图2.增加内容-批处理参数传递3.增加wmic拓展3.增加内容-NET命令
版本信息:v1.0制作人:金靖淋工号:sz4343地点:深圳研祥智谷时间:2020.9.6-7【修改】1.学习dos基础命令2.构建大致框架
windows下脚本应用-批处理
收藏
0 条评论
回复 删除
下一页