1

我有一个小的 vbs 脚本:

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

C:\bin\addtopath.bat存在,我从这个问题中得到了一些想法。这里发生的是 acmd打开并立即关闭,我无法识别它所说的内容。我怎么知道出了什么问题?

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
4

1 回答 1

0

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

调试您的 vbscript 可以使用调试器通过使用 /D /X 参数来完成

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

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

于 2013-01-16T01:42:04.323 回答