批处理,顾名思义,批量处理,它可以将复杂的事情变得简单,最早出现在dos操作系统中,也就是我们经常说的cmd黑窗口,这在早期没有gui界面的时候用的是最多的,而且命令比较丰富,虽然现在有很多功能都被封装到了软件中,但是你会发现在dos中执行操作会更快,哪怕会比较麻烦,如果你无法忍受慢节奏。
下面就基本命令咱们先看看吧,首先打开cmd窗口:
你可以通过 快捷键 徽标键+R,然后输入cmd,也可以点击window系统右下角,然后点击运行,输入cmd即可。
下面我们来看看吧:
打开后可以看到这幅画面,我们可以对他进行一些操作,让他看起来 炫酷一点。
我们先看看怎样操作, 打开属性对话框:
最后我们就得到了这样一个窗口,比以前的是不是要炫酷一点了,哈哈哈哈。
那么dos 里面到底有哪些命令呢?下面我们来看看:
这样就获取到了一部分dos操作系统的命令,也是可以进行批量处理的命令,所以我们形象的称之为批处理脚本。那么这些命令都是怎样使用的了。
一、显示,暂停,清除,注释
1.echo 输出信息
2.pause 暂停
不信,你可以看看这个:
3.cls 清除
清除之后他是没有任何显示的,清除即清空前面的所有内容。
4.rem 注释
另外 :: 也可以起到 rem 的注释作用, 而且更简洁有效。
二、文件目录操作
1. cd 切换目录
2. md 创建文件夹
3. ren重命名
4. move移动文件(夹)
5. del 删除文件
6. copy xcopy 复制文件
很多人觉得这两个用法一样,其实不一样的,当你复制超大型文件时,我想每个人基本都会遇到复制缓慢的尴尬,如果你善用dos命令,可以让你把效率提高至少十倍。copy本身比系统的复制要快,但xcopy更快。
7.dir 列举文件名
可以打印出当前目录所有文件(夹)名
8. 文件属性
三、网络命令
1.net 显示设置网络用户组账号
此命令的语法是: NET [ACCOUNTS|COMPUTER|CONFIG|CONTINUE|FILE|GROUP|HELP| HELPMSG|LOCALGROUP|PAUSE|SESSION|SHARE|START| STATISTICS|STOP|TIME|USE|USER|VIEW]
2.netstat 显示协议统计和当前 TCP/IP 网络连接
NETSTAT[-a][-b][-e][-f][-n][-o][-pproto][-r][-s][-t][interval] -a显示所有连接和侦听端口。 -b显示在创建每个连接或侦听端口时涉及的可执行程序。 在某些情况下,已知可执行程序承载多个独立的 组件,这些情况下,显示创建连接或侦听端口时涉 及的组件序列。此情况下,可执行程序的名称 位于底部[]中,它调用的组件位于顶部,直至达 到TCP/IP。注意,此选项可能很耗时,并且在您没有 足够权限时可能失败。 -e显示以太网统计。此选项可以与-s选项结合使用。 -f显示外部地址的完全限定域名(FQDN)。 -n以数字形式显示地址和端口号。 -o显示拥有的与每个连接关联的进程ID。 -pproto显示proto指定的协议的连接;proto可以是下列任 何一个:TCP、UDP、TCPv6或UDPv6。如果与-s选 项一起用来显示每个协议的统计,proto可以是下列任 何一个:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或UDPv6。 -r显示路由表。 -s显示每个协议的统计。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6 的统计;-p选项可用于指定默认的子网。 -t显示当前连接卸载状态。 interval重新显示选定的统计,各个显示间暂停的间隔秒数。 按CTRL+C停止重新显示统计。如果省略,则netstat 将打印当前的配置信息一次。
3.ping 测试IP连接
用法:ping[-t][-a][-ncount][-lsize][-f][-iTTL][-vTOS] [-rcount][-scount][[-jhost-list]|[-khost-list]] [-wtimeout][-R][-Ssrcaddr][-4][-6]target_name 选项: -tPing指定的主机,直到停止。 若要查看统计信息并继续操作-请键入Control-Break; 若要停止-请键入Control-C。 -a将地址解析成主机名。 -ncount要发送的回显请求数。 -lsize发送缓冲区大小。 -f在数据包中设置“不分段”标志(仅适用于IPv4)。 -iTTL生存时间。 -vTOS服务类型(仅适用于IPv4。该设置已不赞成使用,且 对IP标头中的服务字段类型没有任何影响)。 -rcount记录计数跃点的路由(仅适用于IPv4)。 -scount计数跃点的时间戳(仅适用于IPv4)。 -jhost-list与主机列表一起的松散源路由(仅适用于IPv4)。 -khost-list与主机列表一起的严格源路由(仅适用于IPv4)。 -wtimeout等待每次回复的超时时间(毫秒)。 -R同样使用路由标头测试反向路由(仅适用于IPv6)。 -Ssrcaddr要使用的源地址。 -4强制使用IPv4。 -6强制使用IPv6。
4.ipconfig 查看本机网络配置
用法: ipconfig[/allcompartments][/?|/all| /renew[adapter]|/release[adapter]| /renew6[adapter]|/release6[adapter]| /flushdns|/displaydns|/registerdns| /showclassidadapter| /setclassidadapter[classid]| /showclassid6adapter| /setclassid6adapter[classid]] 其中 adapter连接名称 (允许使用通配符*和?,参见示例) 选项: /?显示此帮助消息 /all显示完整配置信息。 /release释放指定适配器的IPv4地址。 /release6释放指定适配器的IPv6地址。 /renew更新指定适配器的IPv4地址。 /renew6更新指定适配器的IPv6地址。 /flushdns清除DNS解析程序缓存。 /registerdns刷新所有DHCP租约并重新注册DNS名称 /displaydns显示DNS解析程序缓存的内容。 /showclassid显示适配器的所有允许的DHCP类ID。 /setclassid修改DHCP类ID。 /showclassid6显示适配器允许的所有IPv6DHCP类ID。 /setclassid6修改IPv6DHCP类ID。 默认情况下,仅显示绑定到TCP/IP的适配器的IP地址、子网掩码和 默认网关。 对于Release和Renew,如果未指定适配器名称,则会释放或更新所有绑定 到TCP/IP的适配器的IP地址租约。 对于Setclassid和Setclassid6,如果未指定ClassId,则会删除ClassId。 示例: >ipconfig...显示信息 >ipconfig/all...显示详细信息 >ipconfig/renew...更新所有适配器 >ipconfig/renewEL*...更新所有名称以EL开头 的连接 >ipconfig/release*Con*...释放所有匹配的连接, 例如"LocalAreaConnection1"或 "LocalAreaConnection2" >ipconfig/allcompartments...显示有关所有分段的 信息 >ipconfig/allcompartments/all...显示有关所有分段的 详细信息
5.arp 地址转换协议
ARP-sinet_addreth_addr[if_addr] ARP-dinet_addr[if_addr] ARP-a[inet_addr][-Nif_addr][-v] -a通过询问当前协议数据,显示当前ARP项。 如果指定inet_addr,则只显示指定计算机 的IP地址和物理地址。如果不止一个网络 接口使用ARP,则显示每个ARP表的项。 -g与-a相同。 -v在详细模式下显示当前ARP项。所有无效项 和环回接口上的项都将显示。 inet_addr指定Internet地址。 -Nif_addr显示if_addr指定的网络接口的ARP项。 -d删除inet_addr指定的主机。inet_addr可 以是通配符*,以删除所有主机。 -s添加主机并且将Internet地址inet_addr 与物理地址eth_addr相关联。物理地址是用 连字符分隔的6个十六进制字节。该项是永久的。 eth_addr指定物理地址。 if_addr如果存在,此项指定地址转换表应修改的接口 的Internet地址。如果不存在,则使用第一 个适用的接口。 示例: >arp-s157.55.85.21200-aa-00-62-c6-09....添加静态项。 >arp-a....显示ARP表。
6.route 网络路由表
ROUTE[-f][-p][-4|-6]command[destination] [MASKnetmask][gateway][METRICmetric][IFinterface] -f清除所有网关项的路由表。如果与某个 命令结合使用,在运行该命令前, 应清除路由表。 -p与ADD命令结合使用时,将路由设置为 在系统引导期间保持不变。默认情况下,重新启动系统时, 不保存路由。忽略所有其他命令, 这始终会影响相应的永久路由。Windows95 不支持此选项。 -4强制使用IPv4。 -6强制使用IPv6。 command其中之一: PRINT打印路由 ADD添加路由 DELETE删除路由 CHANGE修改现有路由 destination指定主机。 MASK指定下一个参数为“网络掩码”值。 netmask指定此路由项的子网掩码值。 如果未指定,其默认设置为255.255.255.255。 gateway指定网关。 interface指定路由的接口号码。 METRIC指定跃点数,例如目标的成本。 用于目标的所有符号名都可以在网络数据库 文件NETWORKS中进行查找。用于网关的符号名称都可以在主机名称 数据库文件HOSTS中进行查找。 如果命令为PRINT或DELETE。目标或网关可以为通配符, (通配符指定为星号“*”),否则可能会忽略网关参数。 如果Dest包含一个*或?,则会将其视为Shell模式,并且只 打印匹配目标路由。“*”匹配任意字符串, 而“?”匹配任意一个字符。示例:157.*.1、157.*、127.*、*224*。 只有在PRINT命令中才允许模式匹配。 诊断信息注释: 无效的MASK产生错误,即当(DEST&MASK)!=DEST时。 示例:>routeADD157.0.0.0MASK155.0.0.0157.55.80.1IF1 路由添加失败:指定的掩码参数无效。 (Destination&Mask)!=Destination。 示例: >routePRINT >routePRINT-4 >routePRINT-6 >routePRINT157*....只打印那些匹配157*的项 >routeADD157.0.0.0MASK255.0.0.0157.55.80.1METRIC3IF2 destination^^mask^gatewaymetric^^ Interface^ 如果未给出IF,它将尝试查找给定网关的最佳 接口。 >routeADD3ffe::/323ffe::1 >routeCHANGE157.0.0.0MASK255.0.0.0157.55.80.5METRIC2IF2 CHANGE只用于修改网关和/或跃点数。 >routeDELETE157.0.0.0 >routeDELETE3ffe::/32
7.tracert路由跟踪
用法:tracert[-d][-hmaximum_hops][-jhost-list][-wtimeout] [-R][-Ssrcaddr][-4][-6]target_name 选项: -d不将地址解析成主机名。 -hmaximum_hops搜索目标的最大跃点数。 -jhost-list与主机列表一起的松散源路由(仅适用于IPv4)。 -wtimeout等待每个回复的超时时间(以毫秒为单位)。 -R跟踪往返行程路径(仅适用于IPv6)。 -Ssrcaddr要使用的源地址(仅适用于IPv6)。 -4强制使用IPv4。 -6强制使用IPv6。
四、系统命令
1.taskkill 查杀进程
TASKKILL[/Ssystem[/Uusername[/P[password]]]] {[/FIfilter][/PIDprocessid|/IMimagename]}[/T][/F] 描述: 使用该工具按照进程ID(PID)或映像名称终止任务。 参数列表: /Ssystem指定要连接的远程系统。 /U[domain\]user指定应该在哪个用户上下文执行这个命令。 /P[password]为提供的用户上下文指定密码。如果忽略,提示 输入。 /FIfilter应用筛选器以选择一组任务。 允许使用"*"。例如,映像名称eqacme* /PIDprocessid指定要终止的进程的PID。 使用TaskList取得PID。 /IMimagename指定要终止的进程的映像名称。通配符'*'可用来 指定所有任务或映像名称。 /T终止指定的进程和由它启用的子进程。 /F指定强制终止进程。 /?显示帮助消息。 筛选器: 筛选器名有效运算符有效值 --------------------------------------------------- STATUSeq,neRUNNING| NOTRESPONDING|UNKNOWN IMAGENAMEeq,ne映像名称 PIDeq,ne,gt,lt,ge,lePID值 SESSIONeq,ne,gt,lt,ge,le会话编号。 CPUTIMEeq,ne,gt,lt,ge,leCPU时间,格式为 hh:mm:ss。 hh-时, mm-分,ss-秒 MEMUSAGEeq,ne,gt,lt,ge,le内存使用量,单位为KB USERNAMEeq,ne用户名,格式为[domain\]user MODULESeq,neDLL名称 SERVICESeq,ne服务名称 WINDOWTITLEeq,ne窗口标题 说明 ---- 1)只有在应用筛选器的情况下,/IM切换才能使用通配符'*'。 2)远程进程总是要强行(/F)终止。 3)当指定远程机器时,不支持"WINDOWTITLE"和"STATUS"筛选器。 例如: TASKKILL/IMnotepad.exe TASKKILL/PID1230/PID1241/PID1253/T TASKKILL/F/IMcmd.exe/T TASKKILL/F/FI"PIDge1000"/FI"WINDOWTITLEneuntitle*" TASKKILL/F/FI"USERNAMEeqNTAUTHORITY\SYSTEM"/IMnotepad.exe TASKKILL/Ssystem/Udomain\username/FI"USERNAMEneNT*"/IM* TASKKILL/Ssystem/Uusername/Ppassword/FI"IMAGENAMEeqnote*"
2.shutdown 关闭或者重启计算机
用法:shutdown[/i|/l|/s|/r|/g|/a|/p|/h|/e][/f] [/m\\computer][/txxx][/d[p|u:]xx:yy[/c"comment"]] 没有参数显示帮助。这与键入/?是一样的。 /?显示帮助。这与不键入任何选项是一样的。 /i显示图形用户界面(GUI)。 这必须是第一个选项。 /l注销。这不能与/m或/d选项一起使用。 /s关闭计算机。 /r关闭并重新启动计算机。 /g关闭并重新启动计算机。系统重新启动后, 重新启动所有注册的应用程序。 /a中止系统关闭。 这只能在超时期间使用。 /p关闭本地计算机,没有超时或警告。 可以与/d和/f选项一起使用。 /h休眠本地计算机。 可以与/f选项一起使用。 /e记录计算机意外关闭的原因。 /m\\computer指定目标计算机。 /txxx设置关闭前的超时为xxx秒。 有效范围是0-315360000(10年),默认值为30。 如果超时时间大于0,则默示/f 参数。 /c"comment"重启动或关闭的原因的注释。 最多允许512个字符。 /f强制正在运行的应用程序关闭,不前台警告用户。 当为/t参数指定大于0的值时, 则默示/f参数。 /d[p|u:]xx:yy提供重新启动或关机的原因。 p表明重新启动或关闭是计划内的。 u表示原因由用户定义。 如果p和u均未指定,则是计划外重新启动 或关闭。 xx是主要原因号(小于256的正整数)。 yy是次要原因号(小于65536的正整数)。 此计算机上的原因: (E=预期U=意外P=计划内,C=自定义) 类别主要次要标题 U00其他(计划外) E00其他(计划外) EP00其他(计划内) U05其他故障:系统没有反应 E11硬件:维护(计划外) EP11硬件:维护(计划内) E12硬件:安装(计划外) EP12硬件:安装(计划内) E22操作系统:恢复(计划内) EP22操作系统:恢复(计划内) P23操作系统:升级(计划内) E24操作系统:重新配置(计划外) EP24操作系统:重新配置(计划内) P216操作系统:ServicePack(计划内) 217操作系统:热修补(计划外) P217操作系统:热修补(计划内) 218操作系统:安全修补(计划外) P218操作系统:安全修补(计划内) E41应用程序:维护(计划外) EP41应用程序:维护(计划内) EP42应用程序:安装(计划内) E45应用程序:没有反应 E46应用程序:不稳定 U515系统故障:停止错误 U519安全问题 E519安全问题 EP519安全问题 E520网络连接丢失(计划外) U611电源故障:电线被拔掉 U612电源故障:环境 P70旧版API关机
3.start 启动命令
START["title"][/Dpath][/I][/MIN][/MAX][/SEPARATE|/SHARED] [/LOW|/NORMAL|/HIGH|/REALTIME|/ABOVENORMAL|/BELOWNORMAL] [/NODE<NUMAnode>][/AFFINITY<hexaffinitymask>][/WAIT][/B] [command/program][parameters] "title"在窗口标题栏中显示的标题。 path启动目录。 B启动应用程序,但不创建新窗口。应用程序已忽略^C处理。 除非应用程序启用^C处理,否则^Break是唯一可以中断 该应用程序的方式。 I新的环境将是传递给cmd.exe的原始环境,而不是当前环境。 MIN以最小化方式启动窗口。 MAX以最大化方式启动窗口。 SEPARATE在单独的内存空间中启动16位Windows程序。 SHARED在共享内存空间中启动16位Windows程序。 LOW在IDLE优先级类中启动应用程序。 NORMAL在NORMAL优先级类中启动应用程序。 HIGH在HIGH优先级类中启动应用程序。 REALTIME在REALTIME优先级类中启动应用程序。 ABOVENORMAL在ABOVENORMAL优先级类中启动应用程序。 BELOWNORMAL在BELOWNORMAL优先级类中启动应用程序。 NODE将首选非一致性内存结构(NUMA)节点指定为十进制整数。 AFFINITY将处理器关联掩码指定为十六进制数字。进程被限制在这些 处理器上运行。 当/AFFINITY和/NODE结合时,会对关联掩码进行不同的解释。 指定关联掩码,正如NUMA节点的处理器掩码正确移动到零位 起始位置一样。进程被限制在指定关联掩码和NUMA节点之间的 那些通用处理器上运行。如果没有通用处理器,则进程被限制在 指定的NUMA节点上运行。 WAIT启动应用程序并等待它终止。 command/program 如果它是内部cmd命令或批文件,则该命令处理器是使用 cmd.exe的/K开关运行的。这表示运行该命令之后,该窗口 将仍然存在。 如果它不是内部cmd命令或批文件,则它就是一个程序,并将 作为一个窗口化应用程序或控制台应用程序运行。 parameters这些是传递给command/program的参数。 意:在64位平台上不支持SEPARATE和SHARED选项。 过指定/NODE,可按照利用NUMA系统中的内存区域的方式创建进程。例如, 以创建两个完全通过共享内存互相通信的进程以共享相同的首选NUMA节点, 而最大限度地减少内存延迟。如有可能,它们即会分配来自相同NUMA节点的 存,并且会在指定节点之外的处理器上自由运行。 启动/NODE1application1.exe 启动/NODE1application2.exe 两个进程可被进一步限制在相同NUMA节点内的指定处理器上运行。在以下 例中,application1在节点的两个低顺序处理器上运行,而application2 该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑 理器。请注意,节点号可更改为该计算机的任何有效节点号,而无需更改关联 码。 启动/NODE1/AFFINITY0x3application1.exe 启动/NODE1/AFFINITY0xcapplication2.exe 果命令扩展被启用,通过命令行或START命令的外部命令 用会如下改变: 文件名作为命令键入,非可执行文件可以通过文件关联调用。 (例如,WORD.DOC会调用跟.DOC文件扩展名关联的应用程序)。 关于如何从命令脚本内部创建这些关联,请参阅ASSOC和 FTYPE命令。 行的应用程序是32-位GUI应用程序时,CMD.EXE不等应用 程序终止就返回命令提示符。如果在命令脚本内执行,该新行为 则不会发生。 果执行的命令行的第一个符号是不带扩展名或路径修饰符的 字符串"CMD","CMD"会被COMSPEC变量的数值所替换。这 防止从当前目录提取CMD.EXE。 果执行的命令行的第一个符号没有扩展名,CMD.EXE会使用 PATHEXT环境变量的数值来决定要以什么顺序寻找哪些扩展 名。PATHEXT变量的默认值是: .COM;.EXE;.BAT;.CMD 请注意,该语法跟PATH变量的一样,分号隔开不同的元素。 找可执行文件时,如果没有相配的扩展名,看一看该名称是否 目录名相配。如果确实如此,START会在那个路径上调用 lorer。如果从命令行执行,则等同于对那个路径作CD/D。
讲了这么多基础语句是不是想跃跃欲试嘞嘞,其实批处理中还有很多比较高级的东西,比如说循环判断,set设置,下面一起来看看吧。
1.if语句
if语句大家都知道,基本就是用作判断,比如两个数是否相同,一个变量是否存在。它的用法如下:
大家可以看到,这样就完成了一段非常智障的判断语句,哈哈哈。了解了这个简单的语法后,我们是不是该整点新鲜的东西了,比如说变量啥的,下面请看:
可以看到使用关键字set定义变量就完成了交互操作,赋值。
说完了判断,变量,当然还有循环啦,for 循环相信大家都不陌生,在哪里都有它的身影,dos也不例外。
不过貌似这个for语句的话操作起来在cmd窗口中和在批处理文件中结果不一样哦,具体表现为前者需要在变量前加一个%,后者则是两个%%。for语句里有三个关键字 for 、in、do 三者缺一不可。
怎么样,是不是超级简单。当然,它还有很多有趣的地方,比如你想查看某个目录的所有文件:
这样就打印出了当前桌面目录中所有的txt文件。
好了,今天就讲到这里,更多精彩内容期待你的参与。
转载请注明:IT运维空间 » 运维技术 » 一篇文章带你读懂批量处理命令
发表评论