MSDOS 命令 for
- 格式:rtf
- 大小:51.56 KB
- 文档页数:3
MSDOS命令大全MS DOS 命令大全一、基础命令1 dir无参数:查看当前所在目录的文件和文件夹。
/s:查看当前目录已经其所有子目录的文件和文件夹。
/a:查看包括隐含文件的所有文件。
/ah:只显示出隐含文件。
/w:以紧凑方式(一行显示5个文件)显示文件和文件夹。
/p:以分页方式(显示一页之后会自动暂停)显示。
|more:前面那个符号是“\”上面的那个,叫做重定向符号,就是把一个命令的结果输出为另外一个命令的参数。
more也是一个命令,dir /w |more得到的结果和dir /w /p的结果是一样的。
其他的参数大家可以用:dir/?查看。
2 cdcd 目录名:进入特定的目录。
如果看到有个目录显示为:abcdef ghi 就输入:cdabcdef.ghi进入该目录。
cd\ 退回到根目录。
cd..退回到上一级目录。
3 md rdmd 目录名:建立特定的文件夹。
(dos下面习惯叫目录,win下面习惯叫文件夹。
呵呵!)rd 目录名:删除特定的文件夹。
4 cls清除屏幕。
5 copycopy 路径\文件名路径\文件名:把一个文件拷贝到另一个地方。
6 movemove 路径\文件名路径\文件名:把一个文件移动(就是剪切+复制)到另一个地方。
7 deldel 文件名:删除一个文件。
del *.*:删除当前文件夹下所有文件。
del不能删除文件夹。
8 deltree删除文件夹和它下面的所有子文件夹还有文件,厉害。
不要乱用。
9 formatformat x: :x代表盘符,格式化一个分区。
在dos下是用fat文件系统格式化的,在windows2000安装的时候会问你要不要转换为ntfs。
10 typetype 文本文件名:显示出文本文件的内容。
11 edit其实这是个小程序,编辑文本文件用的。
12 renren 旧文件名新文件名:改文件名。
二、关于网络的常用命令1 pingping 主机ip或名字:向目标主机发送4个icmp数据包,测试对方主机是否收到并响应,一般常用于做普通网络是否通畅的测试。
【dos命令之for用法详解】dos命令for用法详解dos命令之for用法详解工具/原料DOS方法/步骤for帮助文档对一组文件中的每一个文件执行某个特定命令。
FOR %variable IN (set) DO command [command-parameters]%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。
可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。
变量名称是区分大小写的,所以 %i 不同于 %I.如果命令扩展被启用,下列额外的 FOR 命令格式会受到支持:FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。
如果在 /R 后没有指定目录,则使用当前目录。
如果集仅为一个单点(.)字符,则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-parameters] 该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。
FOR /F [options] %variable IN (file-set) DO command [command-parameters]FOR /F [options] %variable IN (string) DO command [command-parameters] FOR /F [options] %variable IN (‘command’) DO command [command-parameters]或者,如果有 usebackq 选项:FOR /F [options] %variable IN (file-set) DO command [command-parameters]FOR /F [options] %variable IN (string) DO command [command-parameters] FOR /F [options] %variable IN (‘command’) DO command [command-parameters]filenameset 为一个或多个文件名。
dos批处理命令详解dos批处理命令详解导语:要学好DOS,就要学好批处理文件。
下面就由店铺为大家介绍一下dos批处理命令详解,大家一起去看看吧!DOS下的可执行文件有三种,分别是EXE,COM和BAT。
其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读。
因此,BAT文件和以上二进制可执行文件相比,内容要简单的多。
这些文件内包含着DOS命令的集合,通常叫作批处理文件。
批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛。
比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多。
AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的配置中发挥着非常大的作用。
因此,要学好DOS,就要学好批处理文件。
下面介绍批处理文件的命令及其使用。
DOS自带的批处理命令:@ :将这个符号放在批文件中其它命令的前面,运行时将不显示命令本身。
如@ECHO OFF命令就在批文件首经常用到。
CALL :从一个批文件中调用另一个批文件,调用完后继续执行原来的批文件。
用法:CALL [批文件名]注:也可以使用COMMAND /C命令完成同样的操作。
CHOICE :选择命令。
这是一个DOS外部命令,但它主要用在批文件中。
CHOICE命令执行后将提示可选择的项目,这时通过一个按键来选则。
用法:CHOICE:[/C[:]按键表] [/N] [/S] [/T[:]选择值,秒数] [显示文本]其中,/C表示可选则的按键,/N表示不要显示提示信息,/S表示大小写字符敏感方式,/T表示若在批定的时间内没有选则的话,自动执行/C中定义的某个选择值。
显示文本是CHOICE命令执行时的提示信息。
选择结果将用ERRORLEVEL值来表示。
ECHO :显示指定的信息。
通常显示在屏幕上。
如ECHO Hello将在屏幕上显示Hello的字样。
另外,ECHO ON|OFF用来设置在批文件执行时是否显示命令本身。
dos 管道符和 for 的用法在计算机编程中,DOS管道符和for循环是两种常用的控制结构,它们在处理大量数据或实现特定任务时发挥着重要作用。
本文将详细介绍DOS管道符和for 循环的用法,以及它们在实际应用中的优势和适用场景。
一、DOS管道符DOS管道符是命令行操作中常用的一个工具,它可以将一个命令的输出作为另一个命令的输入。
通过使用管道符,可以将一个命令的输出直接传递给另一个命令进行处理,从而实现数据的转换、过滤和合并等操作。
在DOS命令行中,使用管道符将两个命令连接起来,第一个命令的输出会被传递给第二个命令作为输入。
例如,使用“dir /b”命令列出文件夹中的文件名,再使用管道符将结果传递给“sort”命令进行排序,最后使用“echo”命令将排序后的文件名输出到屏幕上。
完整的命令如下:dir /b | sort | echo > output.txt这个命令将列出文件夹中的文件名,并使用管道符将结果传递给“sort”命令进行排序。
排序后的结果会被存储在output.txt文件中。
需要注意的是,使用管道符时需要注意第二个命令的输入格式是否与第一个命令的输出格式匹配。
如果不匹配,可能会导致数据传输错误或异常。
二、for 循环for循环是另一种常用的控制结构,它用于重复执行一段代码块,直到满足某个条件为止。
在处理大量数据或需要重复执行相同任务的情况下,for循环是非常有用的工具。
在编程中,for循环通常用于迭代一个序列(如数组、列表或文件)中的元素,并对每个元素执行相同的操作。
for循环的基本语法如下:for 变量名 in 序列:执行的操作其中,“变量名”是循环变量,用于存储序列中的每个元素的值;“序列”是要迭代的对象(如数组、列表或文件名列表);“执行的操作”是要在每次循环中执行的操作。
例如,假设有一个包含文件名的列表,我们想要为每个文件名执行相同的操作(如复制文件)。
可以使用for循环来遍历列表中的每个文件名,并执行复制操作。
FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法!先把FOR的变量全部列出来:~I - 删除任何引号("),扩展%I%~fI - 将%I 扩展到一个完全合格的路径名%~dI - 仅将%I 扩展到一个驱动器号%~pI - 仅将%I 扩展到一个路径%~nI - 仅将%I 扩展到一个文件名%~xI - 仅将%I 扩展到一个文件扩展名%~sI - 扩展的路径只含有短名%~aI - 将%I 扩展到文件的文件属性%~tI - 将%I 扩展到文件的日期/时间%~zI - 将%I 扩展到文件的大小%~$PATH:I - 查找列在路径环境变量的目录,并将%I 扩展到找到的第一个完全合格的名称。
如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串我们可以看到每行都有一个大写字母"I",这个I其实就是我们在FOR带入的变量,我们FOR语句代入的变量名是什么,这里就写什么.比如:FOR /F %%z IN ('set') DO @echo %%z这里我们代入的变量名是z那么我们就要把那个I改成z,例如%~fI改为%~fz至于前面的%~p这样的内容就是语法了!好开始讲解:一、~I - 删除任何引号("),扩展%I这个变量的作用就如他的说明,删除引号!我们来看这个例子:首先建立临时文件temp.txt,内容如下"1111"2222"3333""4444"44"55"55"55可建立个BAT文件代码如下:@echo off2echo ^"1111>temp.txt3echo "2222">>temp.txt4echo 3333^">>temp.txt5echo "4444"44>>temp.txt6echo ^"55"55"55>>temp.txt复制代码rem 上面建立临时文件,注意不成对的引号要加转义字符^,重定向符号前不要留空格7FOR /F "delims=" %%i IN (temp.txt) DO echo %%~i8pause9del temp.txt复制代码执行后,我们看CMD的回显如下:1111 #字符串前的引号被删除了2222 #字符串首尾的引号都被删除了3333" #字符串前无引号,后面的引号保留4444"44 #字符串前面的引号删除了,而中间的引号保留55"55"55 #字符串前面的引号删除了,而中间的引号保留请按任意键继续. . .和之前temp.txt中的内容对比一下,我们会发现第1、2、5行的引号都消失了,这就是删除引号~i的作用了!删除引号规则如下(BA T兄补充!)1、若字符串首尾同时存在引号,则删除首尾的引号;2、若字符串尾不存在引号,则删除字符串首的引号;3、如果字符串中间存在引号,或者只在尾部存在引号,则不删除。
第二章 DOS循环:for命令详解一、基本格式FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母表示可替换的参数。
(set) 指定一个或一组文件。
可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters为特定命令指定参数或命令行开关。
参数:FOR有4个参数 /d /l /r /f 他们的作用我在下面用例子解释现在开始讲每个参数的意思二、参数 /dFOR /D %%variable IN (set) DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
如果 Set (也就是我上面写的 "相关文件或命令") 包含通配符(* 和 ?),将对与Set 相匹配的每个目录(而不是指定目录中的文件组)执行指定的 Command。
这个参数主要用于目录搜索,不会搜索文件,看这样的例子@echo offfor /d %%i in (c:\*) do echo %%ipause运行会把C盘根目录下的全部目录名字打印出来,而文件名字一个也不显示!在来一个,比如我们要把当前路径下文件夹的名字只有1-3个字母的打出来@echo offfor /d %%i in (???) do echo %%ipause这样的话如果你当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了这里解释下*号和?号的作用,*号表示任意N个字符,而?号只表示任意一个字符知道作用了,给大家个思考题目!@echo offfor /d %%i in (window?) do echo %%ipause保存到C盘下执行,会显示什么呢?自己看吧! 显示:windows/D参数只能显示当前目录下的目录名字,这个大家要注意!三、参数 /RFOR /R [[drive:]path] %%variable IN (set) DO command [command-parameters] 检查以 [drive:]path 为根的目录树,指向每个目录中的FOR 语句。
正文:DOS命令大全一)MD——建立子目录1.功能:创建新的子目录2.类型:内部命令3.格式:MD[盘符:][路径名]〈子目录名〉4.使用说明:(1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;(2)“路径名”:要建立的子目录的上级目录名,若缺省则建在当前目录下。
例:(1)在C盘的根目录下创建名为FOX的子目录;(2)在FOX子目录下再创建USER子目录。
C:、>MD FOX (在当前驱动器C盘下创建子目录FOX)C:、>MD FOX \USER (在FOX 子目录下再创建USER子目录)(二)CD——改变当前目录1.功能:显示当前目录2.类型:内部命令3.格式:CD[盘符:][路径名][子目录名]4.使用说明:(1)如果省略路径和子目录名则显示当前目录;(2)如采用“CD \”格式,则退回到根目录;(3)如采用“CD ..”格式则退回到上一级目录。
例:(1)进入到USER子目录;(2)从USER子目录退回到子目录;(3)返回到根目录。
C:、>CD FOX \USER(进入FOX子目录下的USER子目录)C:、FOX、USER>CD .. (退回上一级根目录)C:、FOX>CD\ (返回到根目录)C:、>(三)RD——删除子目录命令1.功能:从指定的磁盘删除了目录。
2.类型:内部命令3.格式:RD[盘符:][路径名][子目录名]4.使用说明:(1)子目录在删除前必须是空的,也就是说需要先进入该子目录,使用DEL(删除文件的命令)将其子目录下的文件删空,然后再退回到上一级目录,用RD命令删除该了目录本身;(2)不能删除根目录和当前目录。
例:要求把C盘FOX子目录下的USER子目录删除,操作如下:第一步:先将USER子目录下的文件删空;C、>DEL C:\FOX\USER\*.*第二步,删除USER子目录。
C、>RD C:\FOX\USER(四)DIR——显示磁盘目录命令1.功能:显示磁盘目录的内容。
gzipgzip通过Lempel-ziv算法来压缩⽂件,压缩的时候保留每个⽂件的所有者、权限、修改时间。
对于符号链接,gzip将会忽略它。
如果压缩的⽂件名对其⽂件系统来说太长,则gzip将截断它。
Gzip试图只截断⽂件名中超过3个字符的部分。
(部分由点分隔。
)如果名称仅由⼩部件组成,最长的部分将被截断。
例如,如果⽂件名限制为14个字符,则“gzip.msdos.exe”压缩为“gzi.msd.exe.gz”。
在没有⽂件名长度限制的系统中,名称不会被截断。
默认情况下,gzip将原始⽂件名和时间戳保存在压缩⽂件中。
这些在使⽤“-N”选项解压缩⽂件时使⽤。
当压缩⽂件名被截断或⽂件传输后没有保留时间戳时,这是⾮常有⽤的。
压缩⽂件可以使⽤“gzip –d”或“gunzip”或“zcat”恢复到它们的原始形式。
如果保存在压缩⽂件中的原始名称不适合其⽂件系统,则从原始⽂件中构造新名称以使其合法。
gunzip在其命令⾏中获取⼀个⽂件列表,并替换其名称以.gz、-z、-z、_z或.z结尾的每个⽂件,该⽂件以正确的魔术号开头,⽂件的未压缩⽂件没有原来的扩展名。
gunzip还将特殊的扩展名.tgz和.taz分别识别为.tar.gz和.tar.z的缩写。
压缩时,gzip在必要时使⽤.tgz扩展名,⽽不是截断扩展名为.tar的⽂件。
gunzip⽬前可以解压缩由gzip,zip,compress-H或Pack创建的⽂件.输⼊格式的检测是⾃动的。
当使⽤前两种格式时,gunzip检查32位CRC。
对于包,枪拉链检查未压缩长度。
标准压缩格式的设计不是为了允许⼀致性检查。
然⽽,gunzip有时能够检测到⼀个坏的.z⽂件。
如果在解压缩.z⽂件时出现错误,请不要仅仅因为标准解压缩不抱怨⽽认为.Z⽂件是正确的。
这通常意味着标准解压缩不检查其输⼊,并愉快地⽣成垃圾输出。
上海合作组织压缩-H格式(lzh压缩⽅法)不包括⼀个CRC,但也允许⼀些⼀致性检查。
MSDOS命令大全at 22:00 Shutdown -s:22:00关机,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作Shutdown.exe -s -f -t 3600:倒计时的方式关机这里表示60分钟后自动关机shutdown -a:取消自动关机shutdown -i:打开设置自动关机对话框,对自动关机进行设置Shutdown.exe的参数:-s:关闭本地计算机-a:取消关机操作-f:强行关闭应用程序而没有警告-m \\计算机名:控制远程计算机-i:显示图形用户界面,但必须是Shutdown的第一个选项-l:注销当前用户-r:关机并重启-t 时间:设置关机倒计时-c "消息内容":输入关机对话框中的消息内容(不能超127个字符)开始-运行-命令大全1. gpedit.msc-----组策略2. sndrec32-------录音机3. Nslookup-------IP地址侦测器4. explorer-------打开资源管理器5. logoff---------注销命令6. tsshutdn-------60秒倒计时关机命令7. lusrmgr.msc----本机用户和组8. services.msc---本地服务设置9. oobe/msoobe /a----检查XP是否激活10. notepad--------打开记事本11. cleanmgr-------垃圾整理12. net start messenger----开始信使服务13. compmgmt.msc---计算机管理14. net stop messenger-----停止信使服务15. conf-----------启动netmeeting16. dvdplay--------DVD播放器17. charmap--------启动字符映射表18. diskmgmt.msc---磁盘管理实用程序19. calc-----------启动计算器20. dfrg.msc-------磁盘碎片整理程序21. chkdsk.exe-----Chkdsk磁盘检查22. devmgmt.msc--- 设备管理器23. regsvr32 /u *.dll----停止dll文件运行24. drwtsn32------ 系统医生25. rononce -p ----15秒关机26. dxdiag---------检查DirectX信息27. regedt32-------注册表编辑器28. Msconfig.exe---系统配置实用程序29. rsop.msc-------组策略结果集30. mem.exe--------显示内存使用情况31. regedit.exe----注册表32. winchat--------XP自带局域网聊天33. progman--------程序管理器34. winmsd---------系统信息35. perfmon.msc----计算机性能监测程序36. winver---------检查Windows版本37. sfc /scannow-----扫描错误并复原38. taskmgr-----任务管理器(2000/xp/200339. winver---------检查Windows版本40. wmimgmt.msc----打开windows管理体系结构(WMI)41. wupdmgr--------windows更新程序42. wscript--------windows脚本宿主设置43. write----------写字板44. winmsd---------系统信息45. wiaacmgr-------扫描仪和照相机向导46. winchat--------XP自带局域网聊天47. mem.exe--------显示内存使用情况48. Msconfig.exe---系统配置实用程序49. mplayer2-------简易widnows media player50. mspaint--------画图板51. mstsc----------远程桌面连接52. mplayer2-------媒体播放机53. magnify--------放大镜实用程序54. mmc------------打开控制台55. mobsync--------同步命令56. dxdiag---------检查DirectX信息57. drwtsn32------ 系统医生58. devmgmt.msc--- 设备管理器59. dfrg.msc-------磁盘碎片整理程序60. diskmgmt.msc---磁盘管理实用程序61. dcomcnfg-------打开系统组件服务62. ddeshare-------打开DDE共享设置63. dvdplay--------DVD播放器64. net stop messenger-----停止信使服务65. net start messenger----开始信使服务66. notepad--------打开记事本67. nslookup-------网络管理的工具向导68. ntbackup-------系统备份和还原69. narrator-------屏幕“讲述人”70. ntmsmgr.msc----移动存储管理器71. ntmsoprq.msc---移动存储管理员操作请求72. netstat -an----(TC)命令检查接口73. syncapp--------创建一个公文包74. sysedit--------系统配置编辑器75. sigverif-------文件签名验证程序76. sndrec32-------录音机77. shrpubw--------创建共享文件夹78. secpol.msc-----本地安全策略79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码80. services.msc---本地服务设置81. Sndvol32-------音量控制程序82. sfc.exe--------系统文件检查器83. sfc /scannow---windows文件保护84. tsshutdn-------60秒倒计时关机命令85. tourstart------xp简介(安装完成后出现的漫游xp程序)86. taskmgr--------任务管理器87. eventvwr-------事件查看器88. eudcedit-------造字程序89. explorer-------打开资源管理器90. packager-------对象包装程序91. perfmon.msc----计算机性能监测程序92. progman--------程序管理器93. regedit.exe----注册表94. rsop.msc-------组策略结果集95. regedt32-------注册表编辑器96. rononce -p ----15秒关机97. regsvr32 /u *.dll----停止dll文件运行98. regsvr32 /u zipfldr.dll------取消ZIP支持99. cmd.exe--------CMD命令提示符100. chkdsk.exe-----Chkdsk磁盘检查101. certmgr.msc----证书管理实用程序102. calc-----------启动计算器103. charmap--------启动字符映射表104. cliconfg-------SQL SERVER 客户端网络实用程序105. Clipbrd--------剪贴板查看器106. conf-----------启动netmeeting107. compmgmt.msc---计算机管理108. cleanmgr-------垃圾整理109. ciadv.msc------索引服务程序110. osk------------打开屏幕键盘111. odbcad32-------ODBC数据源管理器112. oobe/msoobe /a----检查XP是否激活113. lusrmgr.msc----本机用户和组114. logoff---------注销命令115. iexpress-------木马捆绑工具,系统自带116. Nslookup-------IP地址侦测器117. fsmgmt.msc-----共享文件夹管理器118. utilman--------辅助工具管理器119. gpedit.msc-----组策略。
MSDOS 命令for.txt 对一组文件中的每一个文件执行某个特定命令。
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。
可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable
而不要用 %variable。
变量名称是区分大小写的,所以 %i 不同于 %I.
如果启用命令扩展,则会支持下列 FOR 命令的其他格式:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。
如果在 /R 后没有指定目录规范,则使用当前目录。
如果集仅为一个单点(.)字符,
则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。
因此,(1,1,5)将产生序列
1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
或者,如果有 usebackq 选项:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
fileset 为一个或多个文件名。
继续到 fileset 中的下一个文件之前,
每份文件都被打开、读取并经过处理。
处理包括读取文件,将其分成一行行的文字,
然后将每行解析成零或更多的符号。
然后用已找到的符号字符串变量值调用 For 循环。
以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。
跳过空白行。
您可通过指定可选 "options" 参数替代默认解析操作。
这个带引号的字符串包括一个或多个指定不同解析选项的关键字。
这些关键字为:
eol=c - 指一个行注释字符的结尾(就一个)
skip=n - 指在文件开始时忽略的行数。
delims=xxx - 指分隔符集。
这个替换了空格和跳格键的
默认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。
这会导致额外变量名称的分配。
m-n
格式为一个范围。
通过 nth 符号指定 mth。
如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
usebackq - 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 file-set
中使用双引号扩起文件名称。
某些范例可能有助:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将
每行中的第二个和第三个符号传递给 for 函数体,用逗号和/或
空格分隔符号。
请注意,此 for 函数体的语句引用 %i 来
获得第二个符号,引用 %j 来获得第三个符号,引用 %k
来获得第三个符号后的所有剩余符号。
对于带有空格的文件
名,您需要用双引号将文件名括起来。
为了用这种方式来使
用双引号,还需要使用 usebackq 选项,否则,双引号会
被理解成是用作定义某个要分析的字符串的。
%i 在 for 语句中显式声明,%j 和 %k 是通过
tokens= 选项隐式声明的。
可以通过 tokens= 一行
指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或
"Z" 的变量。
请记住,FOR 变量是单一字母、分大小写和全局的变量;
而且,不能同时使用超过 52 个。
还可以在相邻字符串上使用 FOR /F 分析逻辑,方法是,
用单引号将括号之间的 file-set 括起来。
这样,该字符
串会被当作一个文件中的一个单一输入行进行解析。
最后,可以用 FOR /F 命令来分析命令的输出。
方法是,将
括号之间的 file-set 变成一个反括字符串。
该字符串会
被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到
内存中,并被当作文件分析。
如以下例子所示:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 会枚举当前环境中的环境变量名称。
另外,FOR 变量参照的替换已被增强。
您现在可以使用下列
选项语法:
%~I - 删除任何引号("),扩展 %I
%~fI - 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器号
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%~zI - 将 %I 扩展到文件的大小
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展
到找到的第一个完全合格的名称。
如果环境变量名
未被定义,或者没有找到文件,此组合键会扩展到
空字符串
可以组合修饰符来得到多重结果:
%~dpI - 仅将 %I 扩展到一个驱动器号和路径
%~nxI - 仅将 %I 扩展到一个文件名和扩展名
%~fsI - 仅将 %I 扩展到一个带有短名的完整路径名
%~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展
到找到的第一个驱动器号和路径。
%~ftzaI - 将 %I 扩展到类似输出线路的 DIR
在以上例子中,%I 和 PATH 可用其他有效数值代替。
%~ 语法
用一个有效的 FOR 变量名终止。
选取类似 %I 的大写变量名
比较易读,而且避免与不分大小写的组合键混淆。
失之毫厘,谬以千里。
仁者见仁,智者见智。