如何连接Windowsbatch file中的string?
我有一个目录,我想用a列出所有.doc
文件;
。
我知道下面的批处理命令回显所有的文件:
for /r %%i In (*.doc) DO echo %%i
但是现在我想把它们都放在一个variables中,加一个;
在两者之间,并立即回声。
我怎样才能做到这一点?
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
基于Rubens的解决scheme,您需要启用envvariables的延迟扩展(键入“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 ):
最大个体环境variables大小为8192字节。
请注意,variables@fname
或@ext
可以简单地连接起来。 这个:
forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"
将所有PDF文件重命名为“filename_old.pdf”