Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Bat文件删除它';s自己的文件夹_Windows_Batch File_Directory - Fatal编程技术网

Windows Bat文件删除它';s自己的文件夹

Windows Bat文件删除它';s自己的文件夹,windows,batch-file,directory,Windows,Batch File,Directory,我有一个文件夹测试,其中有一些其他文件和文件夹。我还有一个bat文件delete.bat 试验 test\delete.bat bat文件使用下一个命令删除测试内容: rmdir C:\test/s/q 我还想删除文件夹测试。如果复制delet.bat文件并将其粘贴到另一个目录中,测试文件夹将被删除 但是,如果在测试文件夹中运行delete.bat文件,则会删除测试文件夹(包括delete.bat文件)的所有内容,但不会删除测试文件夹 我认为这是因为打开了测试文件夹。 有什么建议吗?如果dele

我有一个文件夹测试,其中有一些其他文件和文件夹。我还有一个bat文件delete.bat

试验 test\delete.bat

bat文件使用下一个命令删除测试内容: rmdir C:\test/s/q

我还想删除文件夹测试。如果复制delet.bat文件并将其粘贴到另一个目录中,测试文件夹将被删除

但是,如果在测试文件夹中运行delete.bat文件,则会删除测试文件夹(包括delete.bat文件)的所有内容,但不会删除测试文件夹

我认为这是因为打开了测试文件夹。


有什么建议吗?如果delete.bat要先关闭文件夹,然后运行命令rmdir C:\test/s/q,我可以在开头添加任何命令吗?

下面的
delete.bat
工作正常,如果您在Windows中使用
win+R
运行它

cd c:\
rmdir C:\test /s /q

萨沙·古德帮了大忙

现在我找到了一种在bat文件中添加代码的方法,以便以管理员身份运行(这样,以管理员身份运行将自动运行)

有关更多信息,请参阅

代码如下:

:::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights
:::::::::::::::::::::::::::::::::::::::::
@echo off
CLS 
ECHO.
ECHO =============================
ECHO Running Admin shell
ECHO =============================

:checkPrivileges 
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) 

:getPrivileges 
if '%1'=='ELEV' (shift & goto gotPrivileges)  
ECHO. 
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation 
ECHO **************************************

setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs" 
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >>     "%temp%\OEgetPrivileges.vbs" 
"%temp%\OEgetPrivileges.vbs" 
exit /B 

:gotPrivileges 
::::::::::::::::::::::::::::
:START
::::::::::::::::::::::::::::
setlocal & pushd .

REM Run shell as admin (example) - put here code as you like

cd c:\
rmdir C:\Users\haris\Desktop\test /s /q

只有最后两行是我的代码。

只需切换到另一个目录,这样
cmd.exe
就不会再访问它了。