2013-01-15 3 views
1

를 디버깅하는 방법 :난 작은 VBS 스크립트를 VBScript를에서 ShellExecute

Set UAC = CreateObject("Shell.Application") 
UAC.ShellExecute "C:\bin\addtopath.bat", chr(34) & "C:\bin" & chr(34), "", "runas", 1 

C:\bin\addtopath.bat이 존재하고 내가 this question에서 몇 가지 아이디어를했다. 여기에서 일어나는 일은 cmd이 열리고 즉시 닫히고 그것이 무엇을 말하고 있는지 확인할 수 없다는 것입니다. 무엇이 잘못되었는지 어떻게 알 수 있습니까?

C:\bin\addtopath.bat :

배치 파일을 호출 무엇
pause 
echo %1 
pause 
:: BatchGotAdmin 
:------------------------------------- 
REM --> Check for permissions 
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" 

REM --> If error flag set, we do not have admin. 
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges... 
    goto UACPrompt 
) else (goto gotAdmin) 

:UACPrompt 
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" 
    echo UAC.ShellExecute "%~s0", chr(34) ^& %1 ^& chr(34), "", "runas", 1 >> "%temp%\getadmin.vbs" 
    pause 
    "%temp%\getadmin.vbs" 
    exit /B 

:gotAdmin 
    if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs") 
    pushd "%CD%" 
    CD /D "%~dp0" 
:-------------------------------------- 
echo %1 
pause 
setenv -a PATH %1 

pause 

답변

0

? VBSCRIPT로 모든 것을 해보 시지 않습니까?

당신의 VBScript를 디버깅하는 것은은/D/X 매개 변수

cscript /d /x file.vbs 
    wscript /d /x file.vbs 

디버깅 배치 파일을 사용하여 디버거와 함께 할 수는 악몽이다. 다음은 배치 파일 디버깅에 대한 도움말입니다. http://www.robvanderwoude.com/battech_debugging.php