簡體   English   中英

如何串聯Windows批處理文件中的字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM