【发布时间】:2022-01-19 22:48:18
【问题描述】:
我在文件夹“f”中保存了一个 win-cmd-script“a”,并想用脚本本身删除文件夹“f”。这可能吗?如果可以,怎么做?
我知道,批处理文件可以自行删除:
(goto) 2>nul & del "%~f0"
现在我已经尝试过了:
set mypath=%~dp0
rmdir %mypath%
但这不起作用。有什么想法吗?
【问题讨论】:
-
如果任何应用程序打开了该文件夹,例如 Windows 资源管理器,或者任何应用程序在该目录中的文件上有一个打开的文件句柄,它不会被删除。因此,这将包括批处理文件的工作目录是否是您要删除的文件夹。因此,您至少需要更改目录才能摆脱批处理文件中的文件夹结构。不确定您将如何检查打开该文件夹的任何其他应用程序。
-
它是一种自我删除的安装程序文件。一旦完成,它就消失了。
-
所以只是作为一个测试。我创建了一个文件夹并在其中创建了一个批处理文件。在批处理文件中,我有两个命令。 1)
cd ..2)rmdir /s /q "%~dp0"。我从命令提示符处执行了这个,当我执行它时在那个文件夹中。它确实删除了目录。 -
我也是这么做的。但是在我的系统上它只删除了文件?!奇怪..
-
pushd "%temp%" && rmdir /Q/S "%~dp0"这只会更改工作目录,然后删除文件夹。
标签: batch-file cmd