批处理文件,删除目录中除最新文件夹外的所有文件夹

马耳他

我尝试在完成新备份后删除特定文件夹中的旧备份。由于我实际上没有DOS命令的经验,因此将在Internet上找到的两个脚本混为一谈:

::(C)2008 "BuckFix" www.winsupportforum.de
@echo off
setlocal

set workdir="M:\BACKUPS\CACHE_SSD\"
set folder=
:: get list of all folders, oldest first
dir %workdir% /AD /B /t:w /OD > %temp%folder.tmp
for /f "tokens=1* delims=" %%i in (%temp%folder.tmp) do set "folder=%%i"
del %temp%folder.tmp

::checking if its the right one...just for debugging
echo newest... %folder%

set filedir="M:\BACKUPS\CACHE_SSD\%folder%"

::delete all folders except %folder% ...but how?

pause

因此,选择最新的文件夹效果很好,但我不知道如何删除除该文件夹以外的所有文件夹。我认为这只是一个简单的for循环,但到目前为止,我的所有尝试均以失败告终。它必须是一种安全的方法,因为它是一个备份文件夹,我只想保留最新的备份。我有可以工作的删除脚本,但是当只有一个文件夹时,它也会删除该脚本。当目录为空时,它将杀死整个目录。

恩波科马卡
@echo off
setlocal

set "workdir=M:\BACKUPS\CACHE_SSD\"
set "folder="
for /f "tokens=* delims=" %%i in ('dir %workdir% /AD /B /TW /O-D') do (
    set "folder=%%~fi"
    goto :break
)
:break
echo newest... %folder%

for /f "skip=1 tokens=* delims=" %%i in ('dir %workdir% /AD /B /TW /O-D') do   (
    echo rd /s /q "%%~fi"
)

pause

测试这个,回显实际的删除命令。echo rd /s /q "%%~fi"如果一切正常,请删除echo

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

文件夹中的最新文件

批处理文件:复制除一个文件夹外的所有文件和文件夹

删除Python中除最新文件夹以外的所有文件夹

根据今天的日期创建一个文件夹,然后使用批处理文件将文件复制到新文件夹中

如何对文件夹中的所有文件运行批处理文件?

打开Linux文件夹中的最新文件

批处理文件以重命名文件夹创建新文件夹

Windows批处理文件可将最新文件复制到新文件夹

批处理文件,脚本或快捷方式,用于删除指定文件夹中的最新文件

批处理文件,用于获取文件夹中的所有文件名

如何选择最新文件以批处理文件存储在文件夹中

使用批处理删除文件夹中除列表中的文件以外的所有文件

在Win 7的特定文件夹中创建新文件时执行批处理文件

Windows批处理文件:转换子文件夹中的所有文件

使用批处理文件删除文件夹中除一个扩展名(例如.idf)以外的所有文件

删除文件夹中除具有特定名称的文件夹外的所有文件夹

在文件夹中打开最新文件(jpg)

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

如何清除而不删除所有子文件夹中的所有文件(批处理文件除外)?

批处理文件将文本作为日期和时间保存在新文件夹中

删除目录中除两个特定文件夹外的所有内容

批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

批处理文件-下载最新的FTP文件夹

在目录中搜索最新文件夹将显示“。”。和“ ..”而不是最新的文件夹

通过批处理文件从子文件夹中删除所有内容

如何获取文件夹中的最新文件?

我想使用批处理文件创建“新文件夹”

如何删除目录中除最新的 10 个隐藏文件夹之外的所有文件夹

如何使用批处理文件将特定子文件夹(如果存在)复制到备份文件夹中的新文件夹?