早上好。 我目前在批处理文件中运行以下代码,该文件列出并删除特定位置的项目。它将路径和文件名输出到一个文件,然后通过电子邮件发送给我,以便我可以存储更新版本以供审核。
forfiles -p "D:\Data\Folder1" -s -m *.* -d -7 -c "cmd /c echo %DATE% - %TIME% = @path" >> "C:\Deleted Files.txt"**
forfiles -p "D:\Data\Folder1" -s -m *.* -d -7 -c "cmd /c del /Q @file"
批处理文件中有3个条目可根据需要用于其他文件夹。
我现在必须改变代码并为不同的位置创建一个新文件,如下所示:
我需要能够搜索每个公司的特定子文件夹并清空所述文件夹。例如,Folderb是唯一需要清洁的人。它需要检查每个公司的Folderb。有可能在每周之间添加或删除公司。
我猜测代码需要某种类型的循环/如果逻辑添加到它但是我不足以知道改变它的内容或方法。
非常感谢任何帮助。
答案 0 :(得分:1)
快速解决方案是使用findstr
查找directorys。
但是这个解决方案应该非常刻板地使用,如果在你的路径中你有搜索到的名字它将匹配它并删除它的文件。
如果输出正确并且只显示相关文件夹然后你可以使用它(删除DEL
),你可以测试它并查看输出(我在ECHO
之前放了一个回声)
@echo off
set "$startingDir=D:\Data\SalesArea"
set /p "$dir=Enter the name of the dir to clean : "
pushd "%$StartingDir%"
for /d /r %%a in (*) do echo %%a | findstr /i "%$dir%" >nul && echo del "%%a\*.*"
popd