如何调试vbscript ShellExecute

时间:2013-01-15 17:11:12

标签: windows vbscript runas

我有一个小的vbs脚本:

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

1 个答案:

答案 0 :(得分:0)

你在调用批处理文件是什么?你为什么不在VBSCRIPT中做所有事情?

使用/ D / X参数

可以使用调试器调试vbscript
    cscript /d /x file.vbs
    wscript /d /x file.vbs

调试批处理文件是一场噩梦。以下是调试批处理文件的一些帮助: http://www.robvanderwoude.com/battech_debugging.php