批处理脚本通过附加到字符串列出目录中的文件

时间:2014-06-09 18:34:58

标签: windows batch-file string-concatenation

我正在使用批处理文件,并且需要能够列出在运行批处理脚本的相对路径中找到的所有JavaScript文件。最终列表需要格式化为:

"C:\path\to\file1.js" "C:\path\to\file2.js" "C:\path\to\file3.js" etc..

到目前为止,我已经完成了:

SET files=""
FOR /f "delims=" %%i IN ('dir /b /s ".\path\to\files\*.js"') DO (
    SET files=!files! "%%i"
)
ECHO Files found: %files%

但是,使用上面的脚本,我得到的所有输出是:

Files found: "" C:\path\to\last\file.js

它只输出在目录中找到的最后一个文件。我不知道这里的问题是为什么它只附加最后一个文件。

1 个答案:

答案 0 :(得分:0)

完全按照此处显示的方式运行下面的批处理文件:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

SET "files="
FOR /f "delims=" %%i IN ('dir /b /s ".\path\to\files\*.js"') DO (
    SET files=!files! "%%i"
)
ECHO Files found: %files%

如果输出不是您想要的,请直接从命令行执行下一个命令:

dir /b /s ".\path\to\files\*.js"

如果上一行显示的文件与批处理文件相同,则问题与dir命令有关。