【发布时间】:2020-12-06 08:30:14
【问题描述】:
@echo off
SET dir=%temp%
SET /p choice= Are you sure you want to delete your Temp Folder's contents? [y/n]
IF /I "%choice%"=="y" (
rmdir /s /Q %dir%
mkdir %dir%
Title Deleted Temp's contents
echo Deleted Temp's contents
timeout 2 > nul
exit
)
IF /I "%choice%"=="n" (
exit
) ELSE (exit)
我想自动删除 Temp 文件夹。 我在 Windows 10 版本 2004 上运行此批处理脚本
【问题讨论】:
-
如果不是拼写错误,您需要在 if 语句中的
==“y”和右括号之间留一个空格。==“y” (。如果你根本不需要第二个。 -
有些文件夹永远不要删除:
%TEMP%引用的文件夹就是这样一个文件夹。永远不要完全删除它,只删除此文件夹中的文件和所有子文件夹。如果任何应用程序想要在文件夹中创建一个临时文件,该文件夹的路径被分配给环境变量PATH,而它当前被删除,则应用程序可能会因未定义的行为而失败。见How to delete files/subfolders in a specific directory at the command prompt in Windows?由于NTFS权限,也不建议删除%TEMP%。 -
不应删除和重新创建应始终存在的文件夹,因为这也会导致删除重要文件夹的所有者和权限集。重要文件夹的重新创建接下来可能会导致为重要文件夹设置不同的所有者或不同的权限,并且在删除和重新创建一个或多个帐户后对该文件夹的访问可能会有所不同。因此,对于临时文件,最好只删除重要文件夹中的文件和文件夹,而不是文件夹本身。
-
莫菲是正确的。不要删除文件夹并重新创建它。您应该清空该文件夹。 (为什么?正如他所说,如果您删除并重新创建,所有者和权限都会丢失。)
-
会发生什么?您尝试过什么调试问题?
标签: windows batch-file automation windows-10