我有一個目錄,我想用;
列出所有.doc
文件。如何連接Windows批處理文件中的字符串?
我知道下面的批處理命令回聲的所有文件:
for /r %%i In (*.doc) DO echo %%i
但現在我希望把他們都在一個變量,在兩者之間添加一個;
和回聲一次全部。
我該怎麼做?
set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%
我有一個目錄,我想用;
列出所有.doc
文件。如何連接Windows批處理文件中的字符串?
我知道下面的批處理命令回聲的所有文件:
for /r %%i In (*.doc) DO echo %%i
但現在我希望把他們都在一個變量,在兩者之間添加一個;
和回聲一次全部。
我該怎麼做?
set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%
什麼:
@echo off
set myvar="the list: "
for /r %%i in (*.doc) DO call :concat %%i
echo %myvar%
goto :eof
:concat
set myvar=%myvar% %1;
goto :eof
基於魯本斯的解決方案,您需要啓用ENV變量(鍵入 「help SETLOCAL」 或 「幫助CMD」)的延遲擴展,使得變種是正確的
@echo off
setlocal enabledelayedexpansion
set myvar=the list:
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%
另外考慮以下限制(MSDN):
在循環評價10最大個人環境 可變大小是8192字節。
請注意,變量@fname
或@ext
可以簡單連接。這:
forfiles /S /M *.pdf /C "CMD /C REN @path @[email protected]"
重命名所有的PDF文件 「filename_old.pdf」
非常感謝這個答案!它只是解決了一個動態創建類路徑到批處理文件的問題:)添加了必要的修改,但是我的問題是在執行concat並且已經修復了它! – Charliemops 2011-08-30 14:17:13