当前位置: 首页 > 科技观察

一篇文章带你了解批处理命令

时间:2023-03-15 08:31:17 科技观察

批处理,顾名思义,批处理,它可以把复杂的事情简单化,它最早出现在dos操作系统中,也就是我们常说的cmd黑窗,这个在早期没有GUI界面的时候用的最多,命令也比较丰富。虽然现在软件中封装了很多功能,但是你会发现在DOS下进行操作会更快一些,虽然比较麻烦。如果你不能忍受缓慢的步伐。下面来看看基本命令,首先打开cmd窗口:可以使用快捷键标志键+R,然后输入cmd,或者点击窗口系统右下角,然后点击运行,输入cmd.下面我们来看一下:打开后可以看到这张图片,我们可以对其进行一些操作,让它看起来很酷。先来看看如何操作,打开属性对话框:终于出现了这样一个窗口,是不是比上一个爽多了,哈哈哈哈。那么dos中有哪些命令呢?我们来看一下:这样我们就得到了dos操作系统的一些命令,这些命令也是可以批量处理的,所以我们形象的称之为批处理脚本。那么这些命令是如何使用的呢。1.Display,Pause,Clear,Comment1.echo输出信息2.pausePause不信你看这个:3.clsclearclear后没有显示,clear就是清除所有的以前的内容。4.rem注释另外::还可以起到rem注释的作用,更加简洁有效。二、文件和目录操作1.cd切换目录2.md创建文件夹3.ren重命名4.move移动文件(文件夹)5.del删除文件6.copyxcopy复制文件很多人认为这些两种用法是一样的,其实是不一样的。当你复制非常大的文件时,我想每个人都会遇到复制速度慢的尴尬。如果善用dos命令,至少可以提高十倍以上的效率。copy本身比系统的副本快,但xcopy更快。7.dirlistfilenames可以打印出当前目录下的所有文件(文件夹)名称8.文件属性3.网络命令1.net显示和设置网络用户组帐户该命令的语法为:NET[ACCOUNTS|COMPUTER|配置|继续|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]]其中适配器连接名称(允许使用通配符*和?,参见示例)选项:/?showthisHelpmessage/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...showinfo>ipconfig/all...showdetails>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条目。Loopback接口上的所有无效表项和表项都会被显示出来。inet_addr指定因特网地址。-Nif_addr显示if_addr指定的网络接口的ARP条目。-d删除inet_addr指定的主机。inet_addr可以是通配符*以删除所有主机。-s添加主机并将因特网地址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。命令之一:PRINT打印路由ADD添加路由DELETE删除路由CHANGE修改现有路由目的地指定主机。MASK将下一个参数指定为“网络掩码”值。netmask指定此路由条目的子网掩码值。如果未指定,则默认为255.255.255.255。网关指定网关。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)!=目的地。示例:>routePRINT>routePRINT-4>routePRINT-6>routePRINT157*....仅打印与157*匹配的项目如果未给出,它将尝试为给定网关找到最佳接口。>routeADD3ffe::/323ffe::1>routeCHANGE157.0.0.0MASK255.0.0.0157.55.80.5METRIC2IF2CHANGE仅用于修改网关和/或指标。>routeDELETE157.0.0.0>routeDELETE3ffe::/327.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。4.系统命令1.taskkillkillprocessTASKKILL[/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|UNKNOWNIMAGENAMEeq,ne图像名称PIDeq,ne,gt,lt,ge,lePID值SESSIONeq,ne,gt,lt,ge,le会话号。CPUTIMEeq,ne,gt,lt,ge,leCPU时间,格式为hh:mm:ss。hh-hour,mm-minute,ss-secondMEMUSAGEeq,ne,gt,lt,ge,le内存使用量,单位为KBUSERNAMEeq,ne用户名,格式为[domain\]userMODULESeq,neDLL名称SERVICESeq,ne服务名WINDOWTITLEeq,ne窗口标题描述----1)如果应用过滤器,/IM开关只能使用通配符'*'。2)远程进程总是必须被强制(/F)终止。3)指定远程机器时,不支持“WINDOWTITLE”和“STATUS”过滤器。例如:TASKKILL/IMnotepad.exeTASKKILL/PID1230/PID1241/PID1253/TTASKKILL/F/IMcmd.exe/TTASKKILL/F/FI"PIDge1000"/FI"WINDOWTITLEneuntitle*"TASKKILL/F/FI"USERNAMEeqNTAUTHORITY\SYSTEM"/SKIMnotepadL。exeTA/Ssystem/Udomain\username/FI"USERNAMEneENT*"/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操作系统:重新配置(计划外)EP24OS:Reconfigure(Planned)P216OS:ServicePack(Planned)217??OS:Hotfix(计划外)P217OS:Hotfix(计划内)218OS:Securitypatch(计划外)P218OS:Securitypatch(计划内))E41应用程序:维护(计划外)EP41应用程序:维护(计划内)EP42应用程序:已安装(计划内)E45应用程序:无响应E46应用程序:不稳定U515系统故障:停止错误U519安全问题E519安全问题EP519安全问题E520网络连接丢失(计划外)U611电源故障:WireUnpluggedU612断电:环境P70老版本API关闭3.start启动命令START["title"][/Dpath][/I][/MIN][/MAX][/SEPARATE|/SHARED][/LOW|/NORMAL|/HIGH|/REALTIME|/ABOVENORMAL|/BELOWNORMAL][/NODE][/AFFINITY][/WAIT][/B][命令/程序][参数]“标题”中的窗口标题栏中显示的标题。路径启动目录。B启动应用程序,但不创建新窗口。应用程序忽略了^C处理。^Break是应用程序可以被中断的唯一方式,除非应用程序启用^C处理。我的新环境将是传递给cmd.exe的原始环境,而不是当前环境。MIN启动窗口最小化。MAX启动窗口最大化。SEPARATE在单独的内存空间中启动16位Windows程序。SHARED在共享内存空间中启动16位Windows程序。LOW以IDLE优先级启动应用程序。NORMAL以NORMAL优先级启动应用程序。HIGH启动高优先级的应用程序。REALTIME以REALTIME优先级启动应用程序。ABOVENORMAL以ABOVENORMAL优先级启动应用程序。BELOWNORMAL以BELOWNORMAL优先级启动应用程序。NODE将首选的非统一内存体系结构(NUMA)节点指定为十进制整数。AFFINITY将处理器关联掩码指定为十六进制数。进程被限制在这些处理器上运行。当/AFFINITY与/NODE组合时,亲和掩码的解释不同。指定关联掩码,因为NUMA节点的处理器掩码已正确移动到从零开始。进程被限制在指定的关联掩码和NUMA节点之间的那些通用处理器上运行。如果没有通用处理器,进程将被限制在指定的NUMA节点上运行。WAIT启动应用程序并等待它终止。命令/程序如果是内部cmd命令或批处理文件,则命令处理器使用cmd.exe的/K开关运行。这意味着窗口在运行命令后仍然存在。如果它不是内部cmd命令或批处理文件,则它是一个程序并将作为窗口或控制台应用程序运行。parameters这些是传递给命令/程序的参数。注意:SEPARATE和SHARED选项在64位平台上不受支持。通过指定/NODE,可以以利用NUMA系统中的内存区域的方式创建进程。例如,创建两个完全通过共享内存相互通信的进程以共享相同的首选NUMA节点,同时最大限度地减少内存延迟。它们尽可能从同一个NUMA节点分配内存,并在指定节点以外的处理器上自由运行。Start/NODE1application1.exeStart/NODE1application2.exe可以进一步限制这两个进程在同一NUMA节点内的指定处理器上运行。在以下示例中,application1在节点的两个低阶处理器上运行,而application2在节点的下两个处理器上运行。此示例假定给定节点至少有四个逻辑处理器。请注意,可以将节点号更改为该计算机的任何有效节点号,而无需更改关联代码。Start/NODE1/AFFINITY0x3application1.exeStart/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文件。好了,今天就到这里,更多精彩内容期待您的参与。