问题标签 [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.
batch-file - FORFILES 的多种用途
我们知道这很有效,并且从命令行运行良好......参考。使用具有多种文件类型的 forfiles 进行搜索掩码?
我们想要做的是使用这两个文件掩码:fileone 和 filetwo 来调用另一个 FORFILES 并且加倍的 %%G 现在在批处理脚本中。我想我们可能可以在一度?
结果是:
这似乎也不起作用..不能多次使用:/c...参考..嵌套的文件:路径和扩展过滤器
for-loop - 如何使用 forfiles 命令批量使用多个命令?
我正在尝试复制所有以“world_”为前缀的文件。当我尝试在循环中使用多个命令时遇到问题。我试图编写上面想要的批处理脚本。
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
当前正在迭代sub2
,sub1
已经被处理,但sub3
还没有;sub1
和的内容sub3
在那个时候发生了变化(当当前sub2
如上所述通过时);那会列举什么?我想,内容的变化sub1
不会被识别,但是呢sub3
?
我主要对forfiles
自 Windows Vista 以来的行为感兴趣。
注意:
我已经发布了一个关于该命令的非常相似的问题。for
但是,由于forfiles
不是内置命令并且具有完全不同的语法,我决定发布一个单独的问题,而不是扩展另一个问题的范围。
batch-file - 如何逃避`forfiles`中的`@`变量替换?
我正在使用这样的forfiles
命令行(Windows 7 x64):
如何避免替换@relpath
(当前迭代项的相对路径)以@relpath
逐字获取输出?(......或任何其他@
变量?)
到目前为止,我尝试了以下事情,但没有成功:
\
:@
似乎之前处理过\
所以\@relpath
不起作用,而是扩展的输出只是在前面加上\
;^
:陈述除了消失^@
之外没有任何效果;^
写作^^@
也无济于事,^
然后在扩展输出中保留一个;0xHH
:(对我来说)令人惊讶的是forfiles
,十六进制数字的特定替换0x40
也不起作用,似乎这是在变量解析之前完成的;@@
@
:将第一个字面意思加倍@
,就是这样;
batch-file - 如何正确嵌套两个`forfiles`循环(以便内部主体扩展两个迭代级别的变量)?
我试图嵌套两个forfiles
循环,以便内循环的命令@
从外循环和内循环迭代接收变量。对于后者,@
需要为外部循环转义变量替换,以便内部forfiles
命令接收变量名称。
我有一个枚举给定目录 ( C:\root
) 的代码片段,如果迭代项本身就是一个目录,*.txt
则列出所有包含的文本文件 ()。
但是,它没有按预期工作:我试图逃避@file
with的扩展\
,但它扩展为外循环的值:
此外\@file
, ^@file
, ^^@file
, ^^^@file
, 0x40file
(0x40
是 的十六进制字符代码表示@
)扩展为外部forfiles
变量的值。
\\@file
并^^^^@file
扩展至外部值,分别为 with\
和^
preceeded。
甚至@^file
, @^^file
(参见这篇文章)也不起作用(后者扩展为@file
字面意思)。
那么:有没有办法从外部循环中逃避@
变量的替换(例如@file
,...),forfiles
以便内部forfiles
迭代接收文字变量名称并将其扩展为它的值?
我正在使用 Windows 7 64 位。
注意:
当当前处理的目录中没有文件与给定的掩码 ( )匹配时,2> nul
重定向应该避免大量错误消息。ERROR: Files of type "*.txt" not found.
*.txt
batch-file - 如何在forfiles中获取命令的ERRORLEVEL?
我需要处理超过一天的文件。因此我使用这个:
现在我想检查一下 7z.exe 的进度是否成功。如何errorlevel
在 forefiles 命令中获取该命令?有没有可能?
我已经尝试过以下不起作用的方法。errorlevel
始终返回 0,即使我使用损坏的文件,也应该返回错误 (2)。
batch-file - ForFiles 比 Batch 更新
我正在使用 forfiles 命令
我正在尝试获取比 X 天前更新的文件列表。
当我使用 /D +X 命令时,出现未找到文件的错误:
但是,如果我使用日期,它可以正常工作:
我在 +X 格式上遗漏了什么吗?似乎它正在将当前日期增加 3 天,然后查找比该日期更新的文件。
或者有没有比我知道的更简单的方法来增加日期。仅偶尔使用 Batch
我不想使用vbs,而且我宁愿没有比我的脚本其余部分更长的代码来获取日期,应该有一个更简单的方法。
windows - 使用 forfiles 删除文件夹及其内容
我正在尝试清除公共目录,因此当一个项目超过 30 天时,它应该被删除。我有一个带有以下命令的批处理文件设置:
这很好用。但是,问题在于,它只会删除路径中文件夹中的项目。
示例:C:\PATH\USERS\PATH\HelloWorld\file.text
超过 30 天。但该命令只删除file.text
,而不是文件夹。
我是否必须检查文件夹是否为空,然后使用另一个命令删除该文件夹?
windows - 如何从 Windows forfiles 命令运行具有完整路径的命令?
我正在尝试运行以下命令:
但是,它失败了:
这些也不起作用:
它肯定会失败,因为传递给的路径cmd
包含空格。您通常通过引用整个论点来解决这个问题。但是,似乎没有办法传递双引号。
那么,如何从 Windows forfiles 命令运行具有完整路径的命令?