[英]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.