dos中的for命令简单使用
1、不添加任何參數(shù),for循環(huán)顯示非目錄文件
for命令幫助信息是這樣寫的:
/**
FOR %variable IN (set) DO command [command-parameters]
? %variable ?指定一個(gè)單一字母可替換的參數(shù)。
? (set) ? ? ?指定一個(gè)或一組文件。可以使用通配符。
? command ? ?指定對(duì)每個(gè)文件執(zhí)行的命令。
? command-parameters
? ? ? ? ? ? ?為特定命令指定參數(shù)或命令行開關(guān)。
在批處理程序中使用 FOR 命令時(shí),指定變量請(qǐng)使用 %%variable
而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I.
*/
目錄如下:
建立一文件 test.bat ,復(fù)制以下代碼:
@echo off for %%i in (C:\Users\Administrator\Desktop\test\*) do echo %%i pause 雙擊運(yùn)行結(jié)果:
可以明顯的看到圖中并沒有顯示目錄
2、通過 /d 參數(shù)顯示目錄文件:
for命令幫助信息是這樣寫的:
/**
FOR /D %variable IN (set) DO command [command-parameters]
? ? 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
*/
復(fù)制以下代碼:
@echo off for /d %%i in (C:\Users\Administrator\Desktop\test\*) do echo %%i pause 可以看到,加了參數(shù) /d ?后,只顯示了目錄文件3、通過 ?/R 參數(shù),顯示目錄的級(jí)
for命令幫助信息是這樣寫的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
? ? 檢查以 [drive:]path 為根的目錄樹,指向每個(gè)目錄中的 FOR 語(yǔ)句。
? ? 如果在 /R 后沒有指定目錄規(guī)范,則使用當(dāng)前目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,
? ? 則枚舉該目錄樹。
*/
我們?cè)赽bbbb目錄下在創(chuàng)建ccc和ddd目錄,在ccc目錄里再穿件eee目錄:
復(fù)制一下代碼,栓劑運(yùn)行:
@echo off for /R C:\Users\Administrator\Desktop\test %%i in (.) do echo %%i pause 運(yùn)行結(jié)果:
可以看到命令行將目錄的各級(jí)都顯示出來了
4、fort通過參數(shù) ?/L ?來實(shí)現(xiàn)遞增遞減循環(huán):
for命令幫助信息是這樣寫的:
/**
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
? ? 檢查以 [drive:]path 為根的目錄樹,指向每個(gè)目錄中的 FOR 語(yǔ)句。
? ? 如果在 /R 后沒有指定目錄規(guī)范,則使用當(dāng)前目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,
? ? 則枚舉該目錄樹。
FOR /L %variable IN (start,step,end) DO command [command-parameters]
? ? 該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。因此,(1,1,5)將產(chǎn)生序列
? ? 1 2 3 4 5,(5,-1,1)將產(chǎn)生序列(5 4 3 2 1)
*/
復(fù)制一下代碼:
@echo off for /L %%i in (1,1,4) do echo %%i pause 運(yùn)行結(jié)果:
如果改為: for /L %%i in (4,-1,2),則將以2為遞減循環(huán)。
5、通過參數(shù) /F 來對(duì)文件進(jìn)行操作:
這里幫助信息太多,就不列出來了,建立一個(gè)文件,輸入一下類容:
1234567890
aaaaaaaaaa
bb$bbbb*bb
cccccccccc
dddddddddd
eeeeeeeeee
ffffffffff
gggggggggg
格式如下:
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]
其中“options”有這些:eol=c, skip=n, delims=xxx, tokens=x,y,x-n, usebackq
首先我們來看elo=c,他表示忽略以c開頭的行,例如復(fù)制以下代碼:
@echo off for /f "eol=f" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause 執(zhí)行結(jié)果:
可以看到fffffffffffff的那一行并沒有被打印。
skip=n,表示跳過開頭n行,例如復(fù)制以下代碼:
@echo off for /f "skip=2" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause 執(zhí)行結(jié)果:
可以看到數(shù)字行和aaaaaaaaaaaaaaa行沒有打印出來;
delims=xy,表示在每一行中以x為分隔符號(hào),x和y后面的字符忽略,復(fù)制以下代碼:
@echo off for /f "delims=$" %%i in (C:\Users\Administrator\Desktop\test\hello.txt) do echo %%i pause 執(zhí)行結(jié)果:
對(duì)于tokens=n,m,n-m,參考:
http://blog.sina.com.cn/s/blog_4b795cc10100ez8d.html
對(duì)于usebackq,參見:
http://www.360doc.com/content/10/0706/05/1438974_37156664.shtml
6、對(duì)于set里面包含多條命令的方法
如下代碼:
@echo off for /f "delims=" %%i in ('dir /b .. ^| find "txt"') do echo %%i pause 篩選某個(gè)目錄下的txt文件,在管道前加 ?^ ?符號(hào)。參見:http://bbs.csdn.net/topics/340021271
http://blog.csdn.net/lyhdream/article/details/14214657
總結(jié)
以上是生活随笔為你收集整理的dos中的for命令简单使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过批处理文件自动安装apk到手机
- 下一篇: win7 桌面图标拖不动解决方法