다른 스레드에서 제안 된 추가 VBS 파일이나 상승 된 단축키를 사용하지 않고 실행중인 배치를 자동으로 높이기위한 간단하고 안정적인 방법을 파생 시키려고합니다. 자바 스크립트를 통해 배치에서 UAC 대화 상자를 호출하면 간단한 간단한 코드가 보장됩니다. 예를 대화 상자에서 선택한 경우javascript를 사용하여 관리자로 배치를 실행하는 간단한 방법
은 자동으로 아래의 스크립트는 제대로 관리자 권한에 사용자를 끌어 올리고 있지만 (Cmd를 창 외부) 오류 대화 상자 팝업은 "윈도우 '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
나는 아직도이 "~ snx0 %"가 아닌 "% ~ dpsnx0"하지으로 동작하지 않습니다 =/내 작업 디렉토리는 여전히 그것의 불평 그래서 내 스크립트 디렉토리와 동일하지 않습니다 내 .cmd를 찾을 수 없습니다 - 또한 MSHTA가 경로의 슬래시를 제거하는 것으로 나타났습니다. - POPD "% ~ dp0"을 사용하여 작업했습니다. –