2014-06-09 17 views
0

我正在使用批處理文件,並且需要能夠列出在運行批處理腳本的相對路徑中找到的所有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

你需要在你的程序開始處包含'setlocal EnableDelayedExpansion' – Aacini

+0

我在其他問題中看到過這個,但它設置這對我不起作用。 –

回答

0

剛好運行下面的批處理文件出現在這裏:

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

如果前面:

@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命令有關。

相關問題