Batch file 请帮助我使用批处理脚本

Batch file 请帮助我使用批处理脚本,batch-file,dos,Batch File,Dos,我编写了一个非常简单的批处理脚本来列出“frame”文件夹下的所有xml文件 基本上,我有一个“框架”文件夹,它包含七个子文件夹,在这七个子文件夹中的每一个子文件夹下,都有一些xml文件。但在“框架”本身下没有直接的xml文件 因此,我的批处理脚本旨在“递归地”遍历框架文件夹,列出所有“.xml”文件 我的脚本看起来像: FOR /r %%c in ("C:\Documents and Settings\Robert\Desktop\BHI_P\frame\"*.xml*) DO echo %%

我编写了一个非常简单的批处理脚本来列出“frame”文件夹下的所有xml文件

基本上,我有一个“框架”文件夹,它包含七个子文件夹,在这七个子文件夹中的每一个子文件夹下,都有一些xml文件。但在“框架”本身下没有直接的xml文件

因此,我的批处理脚本旨在“递归地”遍历框架文件夹,列出所有“.xml”文件

我的脚本看起来像:

FOR /r %%c in ("C:\Documents and Settings\Robert\Desktop\BHI_P\frame\"*.xml*) DO echo %%c
它不会工作,但是如果我取出/r并将子文件夹附加到“frame\”之后,它将在该特定子文件夹下列出xml文件


有谁能帮我解释一下吗?谢谢。

您尝试过以下方法了吗

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

你试过以下方法了吗

dir /s /b "C:\Documents and Settings\Robert\Desktop\BHI_P\frame\*.xml"
怎么样

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
怎么样

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

@Vu,谢谢,成功了。但我的最终目标是对每个xml文件执行xslt,因此我必须使用“for”循环遍历每个xml文件,然后对其执行java调用。您能帮忙吗?对于/f%%i in('dir/s/b“C:\Documents and Settings\Robert\Desktop\BHI_P\frame*.xml“),请执行@call:MyRoutine%%i@Vu,谢谢,成功了。但我的最终目标是对每个xml文件执行xslt,因此我必须使用“for”循环遍历每个xml文件,然后对其执行java调用。您能帮忙吗?对于/f%%i in('dir/s/b“C:\Documents and Settings\Robert\Desktop\BHI_P\frame*.xml“),请@call:MyRoutine%%i