gpt4 book ai didi

windows - 使用批处理或 powershell 移动一组目录中超过 90 天的文件,其中目录名称包含某些文本

转载 作者:可可西里 更新时间:2023-11-01 10:22:05 27 4
gpt4 key购买 nike

我有一个服务器,其中有数百个子目录,其中可能包含超过 90 天的扩展名为 .flv 的文件。我需要找到这些文件,但只能在名称中包含“ProdStream”一词的文件夹中找到。

这样做的目的是将文件存档到 AWS(我有一个用于此的工作脚本),并将文件的原始路径保存在日志中。

我可以使用 forfiles 找到所有子文件夹中的文件:

forfiles /P "SRC_PATH" /S /M *.flv /D -90 /C "cmd /C move @file "DEST_PATH""

但是,forfiles 不允许我将文件夹名称用作变量。至少不是我尝试过的。所以我尝试使用 for 命令。

set stream=SRC_PATH
FOR /D /R %stream% %%X IN (ProdStream*) DO [something]

这有效,但仅部分有效,因为我找不到正确的命令放在 DO 之后以查找文件。

我还需要保存具有完整路径信息的文件列表。我一直在使用这个:

forfiles /P "SRC_PATH" /S /M *.flv /D -90 /C "cmd /C echo @path @fsize" >MY_LOG_FILE

这有效,但不会过滤文件夹名称中的 ProdStream 文本。

我愿意在 PowerShell 和批处理中执行此操作。

我的 PowerShell 很弱,但它可以变得更强大!

想法?

服务器是Windows 2008 R2 Enterprise SP1

最佳答案

如果适合你,试试这个:

For /f "delims=" %%a in ('dir /ad/b/s c:\yourfolder\*Prodstream*') do (
forfiles /P "%%~fa" /M *.flv /D -90 /C "cmd /C move @file "DEST_PATH""
)

关于windows - 使用批处理或 powershell 移动一组目录中超过 90 天的文件,其中目录名称包含某些文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25943831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com