需要将文件名连接到变量

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... 捕获任何命令行工具的(控制台)输出...

以上是关于需要将文件名连接到变量的主要内容,如果未能解决你的问题,请参考以下文章

Vue.js:将变量连接到图像 URL

如何将 OS 环境变量连接到 Spring Web 应用程序项目中 application.properties 中的占位符?

导入文件夹中的所有txt文件,连接到数据框中,使用文件名作为R中的变量?

java如何连接到数据库以及如何在数据库中插入变量

仅在需要时自动连接到 PDO

如何使用TortoiseHg工作台连接到存储库?