繁体   English   中英

批处理目录中的所有文件

[英]Batch process all files in directory

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

前任:

> cd f:\test\utils 
> admin import-xml -Dimport.file=f:\DB\file1.xml  -Dadmin.db.password=test123

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

用户名和密码永远不会改变,但文件名对于 15 个不同的 xml 文件来说是不同的——也许很快就会有更多。

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

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

所述%%~dpnxF膨胀到d RIVE,ATH,n为底火焰和E X的当前文件的张力。

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

您可以使用for命令。 在批处理文件中是这样的:

for %%f in (*.xml) do call myotherbatch.bat %%f

假设您正在运行的admin命令在作业完成之前不会返回,则上述循环将按顺序处理它们。

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

for file in f:\DB\*
do
   admin import-xml -Dimport.file="$file" -Dadmin.db.password=test123
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM