我觉得很傻,因为robocopy是服务器管理101;但我似乎在列出文件时遇到问题。
我希望列出目录和子目录中大小超过 10MB 的所有文件。
根据docs,这应该是有效的:
robocopy c:\ /min:10485760 /s /l /fp /tee /log:c:\robocopy.log /njh /njs /ndl
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,会返回一个错误“未指定目标目录”,如果您使用列表 (/L) 选项,我认为这不需要。
另外,如果我像这样包含与目标相同的目录:
robocopy c:\ c:\ /min:10485760 /s /l /fp /tee /log:c:\robocopy.log /njh /njs /ndl
Run Code Online (Sandbox Code Playgroud)
什么都没有返回;但是如果我删除无目录列表 (/ndl),我会看到所有目录的列表。
所以我的问题是:如何使用 robocopy 在目录树结构中列出超过 10MB 的文件,仅此而已?
谢谢!
如果您不依赖于robocopy,您可以通过使用 的for变量替换来实现这一点:-
@for /f "tokens=*" %F in ('dir /s /b /a:-d c:\') do @(
if %~zF geq 10485760 echo %F
)
Run Code Online (Sandbox Code Playgroud)
dir /s /b /a:-d c:\以裸格式 ( ) 为您提供/s所有非目录 ( /a:-d)的递归列表 ( ),以便于解析。c:\/b
for循环该列表("tokens=*"如果您的路径中包含空格,则需要),然后让您~z在任何子命令中使用其变量修饰符来获取文件大小的引用(例如if与您想要的大小进行比较)。
是为了抑制命令的回显,如果您之前调用过(例如,在批处理文件中),@则可以省略。@echo off
| 归档时间: |
|
| 查看次数: |
13666 次 |
| 最近记录: |