1

可能重复:
如何使用 Windows 批处理文件遍历文本文件中的每一行?

需要使用大量文件名来构造一个参数,该参数将传递给从 Windows 命令行调用的应用程序。我正在尝试从 Windows 批处理文件中完成这一切。

到目前为止,我有这个:

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

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

C:\javascripts\index.js
C:\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

这是与 google javascript 编译器一起使用的。目标是将所有这些 javascript 压缩并编译到一个文件中。

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

非常感谢!

4

1 回答 1

3

干得好:

@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

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

于 2012-07-29T17:45:01.163 回答