批量删除以特定方式启动的文件夹
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批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件清除缓存文件解救C盘拒绝C盘爆炸