2017-10-20 6 views
0

私はループを通して単純なファイル名の文字列の連結をしようとしていますが、何とかそれは仕事をしません。スタックオーバーフローでそれを検索しようとしていますが、解決策は本当に機能しません。 DIR \:batchscriptはループのためにファイル名の文字列を連結します

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は(それが0番目の文字で始まる)1番目の文字で始まり、echoに文字列を一括substringingを使用