批处理目录中的所有文件

Gab*_*iel 10 windows cmd batch-file

现在我有一个我编写的批处理作业调用另一个文件并传入可执行文件需要运行的变量(密码和文件名).

例如:

> cd f:\test\utils 
> admin import-xml -Dimport.file=f:\DB\file1.xml  -Dadmin.db.password=test123
Run Code Online (Sandbox Code Playgroud)

我写了一份这样做的工作,但发现会有多个文件.

用户名和密码永远不会改变,但是15个不同的xml文件的文件名不同 - 可能还会有更多.

这些文件将始终位于同一文件夹中.我可以编写一些可以处理此目录中每个文件的内容,而不是以15-20个作业(每个文件一个)结束.要么等到一个在下一个之前完成,要么我可以在开始下一个文件之前添加3分钟的睡眠.

Joe*_*oey 30

pushd C:\test\utils
for %%F in (F:\DB\*.xml) do (
   admin import-xml "-Dimport.file=%%~dpnxF" -Dadmin.db.password=test123
)
popd
Run Code Online (Sandbox Code Playgroud)

所述%%~dpnxF膨胀到d RIVE,p ATH,基部Ñ火焰和e X当前文件的张力.

如果您打算在该循环中设置使用环境变量(%foo%),请help set在遇到麻烦之前先阅读.


Mar*_*ins 7

您可以使用该for命令.批处理文件中有类似的东西:

for %%f in (*.xml) do call myotherbatch.bat %%f
Run Code Online (Sandbox Code Playgroud)

假设admin您运行的命令在作业完成之前没有返回,上面的循环将按顺序处理它们.

如果在提示符处运行该命令(而不是在批处理文件中),则只使用一个%.