首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批处理文件:遍历包含特定单词的文件名,并清除这些文件夹的文件(如果这些文件早于X天

批处理文件:遍历包含特定单词的文件名,并清除这些文件夹的文件(如果这些文件早于X天
EN

Stack Overflow用户
提问于 2017-12-09 03:20:23
回答 1查看 214关注 0票数 0

我正在尝试编写一个批处理脚本来清理编译目录中的旧数据。它必须在某个头目录中进行搜索。在那里,它应该删除超过7天的文件,但只能在名称中包含单词“编译”的子文件夹中删除。compile335,compile336...

这就是我到目前为止想出的方法,但它不能正常工作:

代码语言:javascript
复制
REM Remove files older than 7 days in compile directories of headDirectory
cd C:\headDirectory     
FOR /d /r . %%d IN (%Compile%\*) DO forfiles /p %%d /s /m *.* /d -7 /c "cmd /c Del @path"     

你能告诉我该如何修改我的脚本吗?

编辑:

也许我的问题不够清楚。我想要能做到这一点的东西:

代码语言:javascript
复制
forfiles -p "C:\Whatever\Compile1" -s -m *.* -d -7 -c "cmd /c del @path" 
forfiles -p "C:\Whatever\CompileFoo" -s -m *.* -d -7 -c "cmd /c del @path"
forfiles -p "C:\Whatever\CompileBar" -s -m *.* -d -7 -c "cmd /c del @path" 
forfiles -p "C:\Whatever\Compile23" -s -m *.* -d -7 -c "cmd /c del @path"

但是在一个循环语句中,该语句处理该目录中的所有编译文件夹,但保留其他文件夹不变。

EN

回答 1

Stack Overflow用户

发布于 2017-12-11 17:16:35

找到了,它是

代码语言:javascript
复制
CD C:\HeadDIrectory

FOR /D /r %%G in ("*Compile*") DO forfiles -p %%G -s -m *.* -d -7 -c
"cmd /c del @path"

我用VB脚本调用它,让它变得安静:

代码语言:javascript
复制
Set WshShell = CreateObject("WScript.Shell" )  
WshShell.Run chr(34) & "path\mybatch.bat" & Chr(34), 0  
Set WshShell = Nothing

你们知道更优雅的保持安静的方法吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47720853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档