问题标签 [forfiles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4911 浏览

batch-file - FORFILES 的多种用途

我们知道这很有效,并且从命令行运行良好......参考。使用具有多种文件类型的 forfiles 进行搜索掩码?

我们想要做的是使用这两个文件掩码:fileone 和 filetwo 来调用另一个 FORFILES 并且加倍的 %%G 现在在批处理脚本中。我想我们可能可以在一度?

结果是:

这似乎也不起作用..不能多次使用:/c...参考..嵌套的文件:路径和扩展过滤器

0 投票
2 回答
22836 浏览

for-loop - 如何使用 forfiles 命令批量使用多个命令?

我正在尝试复制所有以“world_”为前缀的文件。当我尝试在循环中使用多个命令时遇到问题。我试图编写上面想要的批处理脚本。

0 投票
2 回答
2773 浏览

cmd - 没有 cmd /c 的文件

我可以按预期运行forfiles命令 cmd /c

但是,如果我删除cmd /c,它不再识别任何参数,只识别基本命令

cmd /c即使在 PATH 上使用外部命令,我也必须使用吗?

0 投票
2 回答
398 浏览

windows - `forfiles` 在什么时候枚举一个目录(树)?

该命令forfiles旨在枚举目录并在每个项目上应用(a)某些命令。对于/S完整的目录树,同样可以完成。

当枚举目录(树)的内容被命令主体中的forfiles命令更改时会发生什么?

假设我们有D:\data包含以下内容的目录:

在所述目录中执行时的输出forfiles /P "D:\data" /M "*.txt" /C "cmd /C echo @file"将明显反映上述列表。

但是,forfiles当正文中的命令修改目录内容时,输出是什么?例如,列表中的文件之一被删除,比方说file3.txt,在实际迭代之前?file4.txt或者,如果在循环完成之前创建了一个新文件,例如?

forfiles /S在这种情况下表现如何?假设有几个子目录sub1, sub2, sub3, 每个都包含上面的文件列表;forfiles /S当前正在迭代sub2sub1已经被处理,但sub3还没有;sub1和的内容sub3在那个时候发生了变化(当当前sub2如上所述通过时);那会列举什么?我想,内容的变化sub1不会被识别,但是呢sub3

我主要对forfiles自 Windows Vista 以来的行为感兴趣。

注意:
我已经发布了一个关于该命令的非常相似的问题。for但是,由于forfiles不是内置命令并且具有完全不同的语法,我决定发布一个单独的问题,而不是扩展另一个问题的范围。

0 投票
2 回答
343 浏览

batch-file - 如何逃避`forfiles`中的`@`变量替换?

我正在使用这样的forfiles命令行(Windows 7 x64):

如何避免替换@relpath(当前迭代项的相对路径)以@relpath逐字获取输出?(......或任何其他@变量?)


到目前为止,我尝试了以下事情,但没有成功:

  • \:@似乎之前处理过\所以\@relpath不起作用,而是扩展的输出只是在前面加上\;
  • ^:陈述除了消失^@之外没有任何效果;^写作^^@也无济于事,^然后在扩展输出中保留一个;
  • 0xHH:(对我来说)令人惊讶的是forfiles,十六进制数字的特定替换0x40也不起作用,似乎这是在变量解析之前完成的;
  • @@@:将第一个字面意思加倍@,就是这样;
0 投票
2 回答
751 浏览

batch-file - 如何正确嵌套两个`forfiles`循环(以便内部主体扩展两个迭代级别的变量)?

我试图嵌套两个forfiles循环,以便内循环的命令@从外循环和内循环迭代接收变量。对于后者,@需要为外部循环转义变量替换,以便内部forfiles命令接收变量名称。

我有一个枚举给定目录 ( C:\root) 的代码片段,如果迭代项本身就是一个目录,*.txt则列出所有包含的文本文件 ()。
但是,它没有按预期工作:我试图逃避@filewith的扩展\,但它扩展为外循环的值:

此外\@file, ^@file, ^^@file, ^^^@file, 0x40file0x40是 的十六进制字符代码表示@)扩展为外部forfiles变量的值。
\\@file^^^^@file扩展至外部值,分别为 with\^preceeded。
甚至@^file, @^^file(参见这篇文章)也不起作用(后者扩展为@file字面意思)。

那么:有没有办法从外部循环中逃避@变量的替换(例如@file,...),forfiles以便内部forfiles迭代接收文字变量名称并将其扩展为它的值?

我正在使用 Windows 7 64 位。


注意:
当当前处理的目录中没有文件与给定的掩码 ( )匹配时,2> nul重定向应该避免大量错误消息。ERROR: Files of type "*.txt" not found.*.txt

0 投票
1 回答
1041 浏览

batch-file - 如何在forfiles中获取命令的ERRORLEVEL?

我需要处理超过一天的文件。因此我使用这个:

现在我想检查一下 7z.exe 的进度是否成功。如何errorlevel在 forefiles 命令中获取该命令?有没有可能?

我已经尝试过以下不起作用的方法。errorlevel始终返回 0,即使我使用损坏的文件,也应该返回错误 (2)。

0 投票
0 回答
800 浏览

batch-file - ForFiles 比 Batch 更新

我正在使用 forfiles 命令

我正在尝试获取比 X 天前更新的文件列表。

当我使用 /D +X 命令时,出现未找到文件的错误:

但是,如果我使用日期,它可以正常工作:

我在 +X 格式上遗漏了什么吗?似乎它正在将当前日期增加 3 天,然后查找比该日期更新的文件。

或者有没有比我知道的更简单的方法来增加日期。仅偶尔使用 Batch

我不想使用vbs,而且我宁愿没有比我的脚本其余部分更长的代码来获取日期,应该有一个更简单的方法。

0 投票
2 回答
23307 浏览

windows - 使用 forfiles 删除文件夹及其内容

我正在尝试清除公共目录,因此当一个项目超过 30 天时,它应该被删除。我有一个带有以下命令的批处理文件设置:

这很好用。但是,问题在于,它只会删除路径中文件夹中的项目。

示例:C:\PATH\USERS\PATH\HelloWorld\file.text超过 30 天。但该命令只删除file.text,而不是文件夹。

我是否必须检查文件夹是否为空,然后使用另一个命令删除该文件夹?

0 投票
2 回答
8395 浏览

windows - 如何从 Windows forfiles 命令运行具有完整路径的命令?

我正在尝试运行以下命令:

但是,它失败了:

这些也不起作用:

它肯定会失败,因为传递给的路径cmd包含空格。您通常通过引用整个论点来解决这个问题。但是,似乎没有办法传递双引号。

那么,如何从 Windows forfiles 命令运行具有完整路径的命令?