批量处理目录下的所有文件

发布于 2024-11-01 09:34:27 字数 408 浏览 4 评论 0原文

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

例如:

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

我写了一个执行此操作的作业,但发现会有多个文件。

用户名和密码永远不会改变,但大约 15 个不同的 xml 文件的文件名有所不同——也许很快还会有更多文件。

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

Right now i have a batch job I wrote that calls another file and passes in the variables that executable needs to run (password and filename).

Ex:

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

I wrote a job that does this, but found out that there would be multiple files.

The username and password never change but the filename differs for like 15 different xml files--with maybe more coming soon.

The files will always be located in the same folder. Instead of ending up with like 15-20 jobs (one for each file), can I write something that will process each file located in this directory. And either wait till one is completed before the next or I can add a 3 min sleep before it starts the next file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

以可爱出名 2024-11-08 09:34:27
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、p‎ath、base‎n‎ame 和 e ‎x‎当前文件的张力。

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

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

The %%~dpnxF expands to d‎rive, p‎ath, base‎n‎ame and e‎x‎tension of the current file.

If you intend to set and use environment variables (%foo%) in that loop, read help set first before you get into trouble.

瀞厅☆埖开 2024-11-08 09:34:27

您可以使用for命令。批处理文件中类似这样的内容:

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

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

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

You can use the for command. Something like this in a batch file:

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

Assuming that the admin command you are running doesn't return until the job is finished, the above loop would process them sequentially.

If you run the command at the prompt (as opposed to in a batch file), only use a single %.

花海 2024-11-08 09:34:27
for file in f:\DB\*
do
   admin import-xml -Dimport.file="$file" -Dadmin.db.password=test123
done
for file in f:\DB\*
do
   admin import-xml -Dimport.file="$file" -Dadmin.db.password=test123
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文