好的,我很抱歉,我对此非常感兴趣,但我试图让我的批处理文件在启动后删除它自己的目录。这是我的文件夹的方式安排:如何让批处理文件删除它自己的目录?
- Folder1中
- delete.bat
我的目标是后“删除,使 “delete.bat” 删除 “Folder1中”。蝙蝠“已经启动。因此,这里是我的代码:
rd /s /q %~dp0..\Folder1
这似乎是它的工作,但它只是删除“Folder1中”的内容,而不是整个目录本身。我究竟做错了什么?
好的,我很抱歉,我对此非常感兴趣,但我试图让我的批处理文件在启动后删除它自己的目录。这是我的文件夹的方式安排:如何让批处理文件删除它自己的目录?
我的目标是后“删除,使 “delete.bat” 删除 “Folder1中”。蝙蝠“已经启动。因此,这里是我的代码:
rd /s /q %~dp0..\Folder1
这似乎是它的工作,但它只是删除“Folder1中”的内容,而不是整个目录本身。我究竟做错了什么?
从RD相应MSDN link:
不能使用rmdir来删除当前目录。您必须先更改到不同的目录(不是当前目录的子目录),然后使用rmdir和路径。
我想这是你的情况出了什么问题,因为批处理文件位于你要删除的目录中。
一些想法...
%~dp0
得到批处理文件的驱动器和路径,这样你就不会需要包括..\Folder1
。一个很好的解决方案:start /b "" cmd /c rd /s /q "%~dp0"
这将创建一个新的进程删除(在它和一切,包括这个批处理文件)的文件夹。小心。 =)
您还没有从另一个文件夹调用批处理。你可以在批处理脚本中'cd'%〜dp0..',以保证你的当前目录不同于folder_1。 – dbenham
这个新字符串究竟做了什么?自从我试图使用它以来,通常工作的进程中的语法错误我不确定这是否是原因,但如果是这样,是否有办法将其反转? –
'rmdir/s/q%〜dp0 .. \ Folder1' – Codexer
'rd/s/q%〜dp0'%〜dp0'是批处理文件夹的路径。 – 2016-11-16 05:49:55