删除某些路径下的某些文件夹(使用cmd中for语句)

在一次写一个负责更新的软件中,遇到要将更新时临时使用的文件夹,删除掉的功能。于是有了下面的探究。
更新软件的实现思路:这是一个只有简单逻辑的软件,只是负责从云端检测是否有新的更新包,然后反馈给主程序,接着下载更新包并解压到windows系统的用户临时目录下,再然后启动临时目录下的更新软件,将更新包(包含自身),拷贝到原程序文件夹。此时,在更新完成之后,一般还会进行一些操作,比如直接启动原来的程序,或者删除临时文件。所以直接执行一个bat文件还是比较通用的。

储备知识

%TEMP% 是临时文件夹,其他常用的参见:https://blog.csdn.net/qq_32072853/article/details/106113236
del /s /q [target] 删除目标文件,或者文件夹中的所有文件。但是会留下文件夹
rd /s /q [target] 可删除文件夹,好像功能还更强大,没太仔细试

使用实例

for /D %I in ("%TEMP%\lenovoawarenew-") do @del /s /q “%~I”
for /D %I in ("%TEMP%\lenovoawarenew-
") do @rd /s /q “%~I”

这会删除用户临时目录下lenovoawarenew-开头的文件或文件夹。

在批处理文件中,按如下使用,略有不同,详细可使用命令FOR /? 查看。
for /D %%I in ("%TEMP%\9534C740-63B0-") do @del “%%~I”
for /D %%I in ("%TEMP%\9534C740-63B0-
") do @rd “%%~I”

你可能感兴趣的:(技巧)