[英]How to concatenate strings in a Windows batch file?
我有一個目錄,要列出所有帶有;
的.doc
文件;
。
我知道以下批處理命令會回顯所有文件:
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”或“ help cmd”),以便在循環中正確評估var:
@echo off
setlocal enabledelayedexpansion
set myvar=the list:
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%
還請考慮以下限制( MSDN ):
單個環境變量的最大大小為8192字節。
注意,變量@fname
或@ext
可以簡單地連接在一起。 這個:
forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"
將所有PDF文件重命名為“ filename_old.pdf”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.