簡體   English   中英

Bat文件刪除它自己的文件夾

[英]Bat file delete it's own folder

我有一個文件夾測試,其中包含一些其他文件和文件夾。 我還有一個bat文件delete.bat

test test \\ delete.bat

bat文件使用下一個命令刪除test的內容: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

好,

Sasha_gud幫了很多忙。

現在我找到了一種在bat文件中添加代碼以便以管理員身份運行的方法(因此以管理員身份運行將自動運行)。

有關詳細信息,請參閱如何自動提升我的批處理文件,以便在需要時從UAC管理員權限請求?

這是代碼:

:::::::::::::::::::::::::::::::::::::::::
:: 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

只有最后兩行是我的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM