Windows批处理文件,使用文件中的行在命令中构造参数

Windows Batch file that uses lines from a file to construct arguments in a command

本文关键字:命令 参数 文件 Windows 批处理文件      更新时间:2024-05-25

可能重复:
如何使用windows批处理文件循环浏览文本文件中的每一行?

需要使用一个大的文件名列表来构造一个参数,该参数指向从Windows命令行调用的应用程序。我正试图在Windows批处理文件中完成这一切。

到目前为止,我有这个:

dir C:'javascripts /a-d /b /s >FileListing.txt

这将创建一个名为"FileListing.txt"的文件,其内容如下所示:

C: ''javascripts''index.jsC: ''javascripts''other_javascripts.js。。。C: ''javascripts''helper.js

我需要做的下一件事是调用一个以这种方式使用这些文件名作为参数的可执行文件:

java-jar compiler.jar--js=C:''javascripts''index.js--js=C:''javascripts''other_javascripts.js。。。--js_output_file=compiled_javascripts.js

这是用于谷歌javascript编译器。目标是获取所有这些javascript和minify,并将它们编译成一个文件。

如何将这些文件名输入命令行参数?

非常感谢!

开始:

@echo off
setlocal enabledelayedexpansion
set JAVA_CMD=java -jar compilar.jar
for /f "tokens=*" %%f in (FileListing.txt) do set JAVA_CMD=!JAVA_CMD! --js=%%f
set JAVA_CMD=!JAVA_CMD! --js_output_file=compiled_javascripts.js
:: Invoke the command
!JAVA_CMD!


改进建议:
丢失文本文件,并从循环中调用dir命令(注意省略的/s),如下所示:

for /f "tokens=*" %%f in ('dir C:'javascripts /a-d /b') do set JAVA_CMD=!JAVA_CMD! --js=%%f

脚本的其余部分保持不变。