需要将文件名连接到变量
Posted
技术标签:
【中文标题】需要将文件名连接到变量【英文标题】:Need to concatenate file names to a variable 【发布时间】:2019-11-08 22:06:48 【问题描述】:我想将 forfiles 命令的输出连接到一个变量。查找超过 5 天的文件,然后将文件名传递给 7z 命令行以压缩这些文件。这是我尝试过的:
set filenames=
forfiles /D -5 /C "cmd /c set filenames= %filenames% @file"
echo %filenames%
此代码不起作用,因为 echo 命令没有输出。需要一些指导来实现结果。
【问题讨论】:
【参考方案1】:forfiles
command 在新的cmd
实例中执行/C
后面的命令,因此任何环境更改(如变量)在实际运行forfiles
的托管cmd
实例中不可用。
您也可以使用for /F
loop 来捕获在forfiles
中回显的输出,并使用它来构建您的变量:
set "filenames="
for /F "delims=" %%F in ('
forfiles /D -5 /C "cmd /C echo/@file"
') do (
call set "filenames=%%filenames%% %%F"
)
call
command 是此处所必需的,以便能够在同一(带括号的)代码块中写入和读取变量。
【讨论】:
我不知道我可以在 for /F 循环中嵌套 forfiles。按预期工作。感谢分享! 不客气!您可以通过for /F
... 捕获任何命令行工具的(控制台)输出...以上是关于需要将文件名连接到变量的主要内容,如果未能解决你的问题,请参考以下文章
如何将 OS 环境变量连接到 Spring Web 应用程序项目中 application.properties 中的占位符?