批量删除以特定方式启动的文件夹

Posted

技术标签:

【中文标题】批量删除以特定方式启动的文件夹【英文标题】:Batch Delete Folders That start a specific way 【发布时间】:2019-08-07 18:41:01 【问题描述】:

我正在使用批处理文件来删除 AppData 中的文件,本质上我想清除 Skype/Lync 中的缓存。我正在从大约十年前的旧代码中改编一些东西,所以今天我所做的也许是愚蠢的。

我目前拥有的东西

@echo off
echo Clearing Lync cache...
If %errorlevel%==1 goto Error
if "%LOCALAPPDATA%"=="" Set LOCALAPPDATA=%USERPROFILE%\Local Settings\Application Data
dir "%UserProfile%\AppData\Local\Microsoft\Office\16.0\Lync\sip_*" /b > list.txt
FOR /F "tokens=1" %%i in (list.txt) do del 

所以这个得到的是 sip_ 信息并将其填充到一个名为 list 的文本文件中。然后我想删除与这些名称匹配的所有文件夹。 rmdir 似乎不起作用,但我可能错了

【问题讨论】:

这看起来不像 Bash。 这看起来像批处理语法(即 DOS/Windows .BAT 脚本)——拼写类似于 bash(一个 unix shell),但在其他方面非常不同。 哎呀,因为每个人都指出我很傻,当我指的是批处理时,我在说 bash 试试这个:for /F "delims=" %%i in (list.txt) do rmdir "%%i"。开头的if %ErrorLevel%==1完全没用…… 试试这个删除所有文本文件:Del "*.txt" 【参考方案1】:

没关系,简单的修复

cd %UserProfile%\AppData\Local\Microsoft\Office\16.0\Lync\
for /d /r %%i in (sip_*) do @rmdir /s "%%i"

【讨论】:

您确定要递归子目录 (/R)? @aschipfl 在这种情况下会很糟糕吗?这些不应该是文件夹,但不应该影响其他任何东西。我希望它尽可能健壮,因为它将部署在许多机器上 好吧,是否需要子目录由您决定,我只是想指出这一点;无论如何,使用cd /D 而不是cd...

以上是关于批量删除以特定方式启动的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

python脚本,批量删除文件或文件夹中特定字符

使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件清除缓存文件解救C盘拒绝C盘爆炸

批量删除特定目录中的部分文件夹名称

sh 批量重命名文件删除特定字符

Pandas DataFrame 删除带有特定值的行

急!如何批量删除数据库中以特定字符开头和结尾的字符串