2011-09-07 48 views
0

我寫了一個非常簡單的批處理腳本來列出「frame」文件夾下的所有xml文件。請幫我用我的批處理腳本

基本上,我有一個「框架」文件夾,它包含七個子文件夾,在這七個子文件夾的每一個下面,都有一些xml文件。但是在「frame」本身下面沒有直接的xml文件。

所以我的批處理腳本是爲了循環遍歷幀文件夾「遞歸」列出所有「.xml」文件。

我的腳本是這樣的:

FOR /r %%c in ("C:\Documents and Settings\Robert\Desktop\BHI_P\frame\"*.xml*) DO echo %%c 

它不會工作,但如果我拿出/ R及附加後「框架\」的子文件夾,它會列出該特定子下的xml文件夾。

任何機構能幫助我並給我一些解釋嗎?謝謝。

回答

2

如何

For /R "C:\Documents and Settings\Robert\Desktop\BHI_P\frameframe\" %%i in (*.xml) DO echo %%i 

測試

C:\tmp\so>mkdir robert 
C:\tmp\so>cd robert 
C:\tmp\so\robert>mkdir frame\a\b\c\d\e\f 
C:\tmp\so\robert>mkdir frame\a\b\c\d\e\f1 
C:\tmp\so\robert>mkdir frame\a\b\c\d\e\f2 
C:\tmp\so\robert>mkdir frame\a\b\c\d\e\ff3 
C:\tmp\so\robert>echo > frame\a\a.xml 
C:\tmp\so\robert>echo > frame\a\a1.xml 
C:\tmp\so\robert>echo > frame\a\b\b.xml 
C:\tmp\so\robert>echo > frame\a\b\c\c.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\d.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\e\e.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\e\f\f.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\e\f1\f1.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\e\f2\f2.xml 
C:\tmp\so\robert>echo > frame\a\b\c\d\e\ff3\ff3.xml 

輸出

C:\tmp\so\robert>robert.bat 
C:\tmp\so\Robert\frame\a\a.xml 
C:\tmp\so\Robert\frame\a\a1.xml 
C:\tmp\so\Robert\frame\a\b\b.xml 
C:\tmp\so\Robert\frame\a\b\c\c.xml 
C:\tmp\so\Robert\frame\a\b\c\d\d.xml 
C:\tmp\so\Robert\frame\a\b\c\d\e\e.xml 
C:\tmp\so\Robert\frame\a\b\c\d\e\f\f.xml 
C:\tmp\so\Robert\frame\a\b\c\d\e\f1\f1.xml 
C:\tmp\so\Robert\frame\a\b\c\d\e\f2\f2.xml 
C:\tmp\so\Robert\frame\a\b\c\d\e\ff3\ff3.xml 
+0

perfect!它的工作!thx! – Kevin

1

您是否嘗試過以下方法?

dir /s /b "C:\Documents and Settings\Robert\Desktop\BHI_P\frame\*.xml" 
+0

@Vu,謝謝,它的工作。但我的最終目標是在每個xml文件上執行xslt,因此我必須使用「for」循環遍歷每個xml文件,然後對其執行java調用。你能幫我嗎? – Kevin

+0

for/f %% i in('dir/s/b「C:\ Documents and Settings \ Robert \ Desktop \ BHI_P \ frame \ *。xml'')do @call:MyRoutine %% i –