2017-10-20 82 views
0

我想通过循环做简单的文件名字符串连接,但不知何故它不工作。一直试图在堆栈溢出中搜索它,但解决方案并没有真正的工作。batchscript通过for循环连接文件名字符串

这里是我的代码:

setlocal EnableDelayedExpansion 
set str= 
for /r %%i in (*) do (
    set str=%str%'%%i' 
) 
echo %str% 
endlocal 

我的文件目录为C:\目录。文件内部只是file1.txt,file2.txt。

我希望这个输出为%str%'C:\dir\file1.txt','C:\dir\file2.txt'但我的输出结果是这样的:%str%'C:\dir\file2.txt'。它只输出目录中的最后一个文件。

回答

0
set str=!str!,'%%i' 

然后

echo %str:~1% 

见任何人数约delayed expansion的原因SO文章。

每个单独的项目被添加到一逗号后的列表,因此:~1使用分批substringing到echo字符串,起始于第i个字符(它开始于第0字)