如何在 Windows 批处理文件中连接字符串?

发布于 2024-08-17 08:20:07 字数 323 浏览 4 评论 0原文

我有一个目录,我想列出所有带有 ;.doc 文件。

我知道以下批处理命令会回显所有文件:

for /r %%i In (*.doc) DO echo %%i

但现在我想将它们全部放入一个变量中,在其间添加 ; 并立即回显所有文件。
我怎样才能做到这一点?

set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%

I have a directory for which I want to list all the .doc files with a ;.

I know the following batch command echos all the files:

for /r %%i In (*.doc) DO echo %%i

But now I want to put them all in a variable, add a ; in between and echo them all at once.
How can I do that?

set myvar="the list: "
for /r %%i In (*.doc) DO <what?>
echo %myvar%

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

柠檬 2024-08-24 08:20:07

怎么样:

@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

What about:

@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
笑着哭最痛 2024-08-24 08:20:07

基于 Rubens 的解决方案,您需要启用 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字节。

Based on Rubens' solution, you need to enable Delayed Expansion of env variables (type "help setlocal" or "help cmd") so that the var is correctly evaluated in the loop:

@echo off
setlocal enabledelayedexpansion
set myvar=the list: 
for /r %%i In (*.sql) DO set myvar=!myvar! %%i,
echo %myvar%

Also consider the following restriction (MSDN):

The maximum individual environment
variable size is 8192bytes.

陌伤ぢ 2024-08-24 08:20:07

请注意,变量 @fname@ext 可以简单地连接起来。此操作:

forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"

将所有 PDF 文件重命名为“filename_old.pdf”

Note that the variables @fname or @ext can be simply concatenated. This:

forfiles /S /M *.pdf /C "CMD /C REN @path @fname_old.@ext"

renames all PDF files to "filename_old.pdf"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文