如何删除所有超过 2 天的空文件夹?

2024-04-21

我制作了一个脚本,删除路径中带有子文件夹的所有空文件夹。 现在我必须做的是,如果一个文件夹是 2 天前创建的,并且它是空的,则应该将其与其他早于 2 天的空文件夹一起删除。如果不是,则不应删除它。 我还需要/想要将已删除的文件夹写入日志中。 我用 5 种文件类型做了这个,但我不知道这应该如何与文件夹一起使用。

我对 Batch 很陌生,所以我不知道我应该做什么。 我检查了谷歌,但结果与我的问题不符。 我希望有一个人可以帮助我。

这是我到目前为止编写的代码:

@echo off

::start path / Variables
set startdir="C:\Users" 
::Initialize the Variable
set /a loop=0
::Directory c:\temp\ will be created, if the folder not exists 
if not exist c:\temp\ md c:\temp\
::Create Logfile for Deleted Filetypes in C:\Log\LOG_Useless_File_Killer.txt
echo ----------------------------------- >> C:\Log\LOG_Useless_File_Killer.txt
echo Logfile from: %date% at %time% >> C:\Log\LOG_Useless_File_Killer.txt
echo. >> C:\Log\LOG_Useless_File_Killer.txt
::this 5 Filetypes are going to be deleted immediately
del C:\Users\Thumbs.db /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
del C:\Users\desktop.ini /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt 
del C:\Users\*.DS_Store /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt 
del C:\Users\*._DS_Store /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt 
del C:\Users\*.desktop /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt 
::Writes the directorys in c:\temp\tmp.txt. 
dir /AD /b /s %startdir% > c:\temp\tmp.txt
::at goto start it will be start again
:start
::the Variable %loop% is increased by 1  
set /a loop =%loop%+1
::at 5 --> goto exit
if %loop%==5 goto exit
::Under 5 --> goto start 
else goto start
::deletes every empty folder which is written in C:\temp\tmp.txt
for /F "delims=" %%i in (c:\temp\tmp.txt) do rd "%%i" 
::--> goto start and begins again 
goto start
::%loop% has reached 5 --> exit
:exit
::Console window will be closed 
exit

pause 

exit

Pradeep https://stackoverflow.com/users/153541/pradeep关于最好的方法是文件的说法绝对正确。

要删除文件夹,请尝试以下操作:
FORFILES -p "" /D -15 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"
/D 表示天数,您可以使用命令参数来满足确切的要求。

您还可以使用环境变量,这样您就可以轻松地仅删除当前登录用户的文件。例如,您可以使用%HOMEPATH%\Desktop进入当前用户的桌面。更多环境变量here https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除所有超过 2 天的空文件夹? 的相关文章

  • 如何仅回显“开”或“关”文本?

    大家都知道 在 Windows 命令文件中 cmd echo on echo off 启用和禁用回显 但是如何仅回显文本 on 或文本 off IE 如何发送文本 on off to stdout 目标系统 Windows XP 那么在 D
  • 如何通过批处理脚本检查进程是否正在运行

    如何检查应用程序是否正在从批处理 以及 cmd 文件运行 如果程序已经在运行 我不需要启动另一个实例 我无法更改应用程序以使其仅作为单个实例 该应用程序还可以以任何用户身份运行 我想到的另一种可能性 不需要保存文件 灵感来自于使用grep
  • 批处理 - 将 dir 命令的输出存储到变量 - 目录列表中

    我需要将整个目录列表存储到一个变量中 然后将所述变量作为参数传递给另一个脚本 直接或首先将 dir 的输出存储到文本文件中 然后执行如下操作 dir path todir gt temp txt set p VAR
  • 通过 Bash 命令在文本文件中查找并替换

    例如 对给定输入字符串进行查找和替换的最简单方法是什么abc 并替换为另一个字符串 例如XYZ在文件中 tmp file txt 我正在编写一个应用程序并使用 IronPython 通过 SSH 执行命令 但我不太了解 Unix 也不知道要
  • C shell 脚本中是否有短路逻辑运算符?

    我认为 C shell 脚本的行为会像 C 一样 并对逻辑运算符使用短路求值 if e cache find monitor newer cache then endif 但在 if 语句中 即使第一个条件为真 也会检查第二个条件 从而给出
  • Rhino:限制可以从 JavaScript 访问的 Java 包

    当将 JavaScript 解释器 Rhino 嵌入到 Java 应用程序中 以便能够编写该应用程序的脚本 时 如何限制脚本可用的 Java 包 例如 只有 java lang 应该是可访问的 描述了一种在 Rhino 中阻止访问某些包和类
  • 检查 Linux 中给定进程的打开 FD 限制

    我最近有一个 Linux 进程 泄露 了文件描述符 它打开了文件描述符 但没有正确关闭其中一些文件描述符 如果我对此进行监控 我就可以提前得知该过程已达到其极限 有没有一种很好的 Bash 或 Python 方法来检查 Ubuntu Lin
  • bash 脚本中的未绑定变量

    在调试我的脚本时 我变得绝望 我使用了我的高级同事向我推荐的一些结构 但我不知道如何使其正常工作 bin bash x set ueo pipefail exec gt tmp dq log source BASH SOURCE env p
  • 从批处理文件中获取java版本

    如何获取java版本并希望从批处理文件中获取java版本中的 6 我尝试了下面的脚本 但没有成功 REM check java exists using JAVA HOME system variable if JAVA HOME ECHO
  • SQL Server 与 Oracle DBMS_METADATA.GET_DDL 并行吗?

    我正在寻找命令行或脚本化解决方案来从 SQL Server 2005 中为所有数据库对象提取 DDL 表 存储过程 视图 索引 索引 约束等 GUI 工具不感兴趣 优先选择内置工具 因为它最能与 Oracle 的 DBMS METADATA
  • 如何识别 CVS 中存在哪些分支?

    我有一个遗留的 CVS 存储库 应将其迁移到 Perforce 对于每个模块 我需要确定该模块中存在哪些分支 我只想要一个分支名称列表 没有标签 出于脚本编写的原因 它必须是命令行工具 例如 假设有一个 cvs list branches
  • 在批处理文件中添加 +1 到日期

    我有一个批处理文件 可以很好地创建今天的日期 现在我需要更新它以显示明天的日期 任何帮助深表感谢 echo off set TimeStamp 12 00 00 FOR F TOKENS 1 DELIMS A IN DATE T DO SE
  • CMD 或 Powershell 命令组合(合并)两个文件中的相应行[重复]

    这个问题在这里已经有答案了 是否可以使用 CMD 和 Powershell 将 2 个文件合并为 1 个文件 如下所示 file1 line1 tab file2 line1 file1 line2 tab file2 line2 file
  • 批处理:将文件移动到名称第一个字母的文件夹?

    我想要 3 个文件夹 A G H T 和 U Z 我希望文件能够根据名称的第一个字母通过批处理自动分类到这些文件夹中 有办法做到这一点吗 谢谢你 ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION SET so
  • 批处理文件无法在条件语句中设置环境变量

    为什么 Windows 批处理文件输出以下内容Foo其次是Bar 而不是Baz echo off setlocal set Foo echo set Bar if 1 1 set Baz echo 我的系统 Microsoft Window
  • 忽略批处理文件中的百分号

    我有一个批处理文件 可将文件从一个文件夹移动到另一个文件夹 批处理文件是由另一个进程生成的 我需要移动的一些文件中包含字符串 20 move y myserver myfolder file 20name txt myserver othe
  • 使用脚本查找字符串长度的奇怪结果?

    我正在测试 unmeat 提交的这段代码这个问题 https stackoverflow com questions 21817684 batch get string length with special characters 肉叔叔引
  • 如何在 Python 中包含 PHP 脚本?

    我有一个 PHP 脚本 news generator php 当我包含它时 它会抓取一堆新闻项并打印它们 现在 我在我的网站 CGI 中使用 Python 当我使用 PHP 时 我在 新闻 页面上使用了这样的内容 为了简单起见 我删掉了这个
  • 使用 .bat 通过文件资源管理器打开文件夹

    我应该使用什么命令在程序末尾打开指定路径 start c Yaya yoyo 不管用 你可以这样尝试 SystemRoot explorer exe c Yaya yoyo
  • 如何在批处理文件中回显换行符?

    如何从批处理文件输出中插入换行符 我想做类似的事情 echo hello nworld 这会输出 hello world Use echo hello echo echo world

随机推荐