他のスレッドで提案されている余分なVBSファイルや昇格されたショートカットを使用せずに、実行中のバッチを自動昇格させる簡単で信頼できる方法を導きます。 javascript経由でバッチからUACダイアログを呼び出すことで、簡単な簡単なコードが保証されます。javascriptを使用して管理者としてバッチを実行する簡単な方法
はいをダイアログで選択された場合、自動以下のスクリプトは、正しく管理者権限をユーザーに上昇、しかし(CMDウィンドウの外で)エラーダイアログのポップアップ「Windowsは 『 TEST.BAT』見つけることができません」。ファイルへのパスにスペースが含まれている可能性がありますか?どのようにコードを修正するか、このエラーポップアップを抑制する?
@echo off
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute("%~nx0", '', '', 'runas', 1);close();"
:: test admin rights
>nul 2>&1 net file
echo '%errorlevel%'
if !errorlevel! equ 0 echo Hello >%temp%\tst.txt
exit /b
私はまだそれが「%〜dpsnx0」= /私の作業ディレクトリを「%〜snx0」と、ない仕事をしていないことを得ることができない、それはまだだ、それを文句を言うように、私のスクリプトのディレクトリと同じではありません私の.cmdを見つけることができません - 私はまた、MSHTAがパスからスラッシュを取り除くことに気付きました。 - 私はPOPD "%〜dp0" –