好吧,我很抱歉我对此很陌生,但我试图让我的批处理文件在启动后删除它自己的目录。这是我的文件夹的排列方式:
我的目标是让“delete.bat”在启动“delete.bat”后删除“Folder1”。这是我的代码:
rd /s /q %~dp0..\Folder1
这似乎可行,但它只删除“Folder1”的内容,而不是整个目录本身。我究竟做错了什么?
一些想法...
-
%~dp0
获取批处理文件的驱动器和路径,因此不需要包含..\Folder1
.
- 你所拥有的应该有效。如果它没有删除文件夹本身,则意味着它已被锁定,可能是因为 cmd 的当前文件夹是Folder1。 (这是一个可能的猜测,但这并不是它可能被锁定的唯一原因。)如果是 cmd,则必须从Folder1 之外的另一个文件夹调用批处理文件。
- 虽然您所拥有的可以工作,但在恢复不存在的批处理文件时会导致一个有趣的错误:系统找不到指定的路径。您可以通过下面的解决方案来避免这种情况。
一个好的解决方案:start /b "" cmd /c rd /s /q "%~dp0"
这将创建一个新进程来删除该文件夹(以及其中的所有内容,包括批处理文件本身)。当心。 =)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)