こんにちは、管理者として実行する必要があるバッチ ファイルを作成しました。そのために、ここ(StackOverflow) から取得したこのスクリプトを使用します。
しかし、私が望むのは、ユーザーが管理者として実行しないことを選択した場合 (UAC に対して [いいえ] をクリック)、プログラムは終了し、バッチはそれ自体を自動的に削除します。
バッチ ファイル自体を削除するためのコマンドは "del %0" ですが、このコマンドをスクリプトのどこに配置できるかについて助けが必要です。「@exit /B」で入れてみたのですが、UACにYESかNOを押すとバッチファイルが削除されて残りのバッチファイルが実行できません
ユーザーが UAC に対して「いいえ」を押したときに、コマンド「del %0」のみを実行する方法を理解できる人はいますか?
@echo off
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
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
ありがとうルーン