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 ですべてを実行しないのはなぜですか。

/D /X パラメーターを使用して、デバッガーで vbscript をデバッグできます。

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

バッチ ファイルのデバッグは悪夢です。バッチ ファイルのデバッグに関するヘルプは次のとおりです: http://www.robvanderwoude.com/battech_debugging.php

于 2013-01-16T01:42:04.323 に答える