Vbscript 没有获得正确的错误代码

Vbscript 没有获得正确的错误代码,vbscript,plink,Vbscript,Plink,当我在vbscript的代码下运行时,无论错误代码如何,我总是在日志文件中获得错误状态为0,但当我在命令提示符下运行相同的代码时,我获得错误代码127。下面是vbscript代码 set objShell = WScript.CreateObject ("WScript.Shell") str = "plink.exe -ssh user@host -pw gbG8qs4D /remote_linux_server/listoffiles.sh > C:\count_data_csv.t

当我在vbscript的代码下运行时,无论错误代码如何,我总是在日志文件中获得错误状态为0,但当我在命令提示符下运行相同的代码时,我获得错误代码127。下面是vbscript代码

set objShell = WScript.CreateObject ("WScript.Shell")

str = "plink.exe -ssh user@host -pw gbG8qs4D /remote_linux_server/listoffiles.sh > C:\count_data_csv.txt"

error = "error %ErrorLevel%" >> C:\count_data_csv.txt"

objShell.run  "cmd /k " & str & "&" & error

Set objShell = Nothing
请让我知道为什么错误代码不同


但在运行上述vbscript命令后,如果我在命令提示符中检查错误代码,我将得到错误代码127,这是正确的,但我的vbscript无法重定向count_data_csv.txt中的相同错误代码:(

errorlevel
在多个命令中使用时尚未设置:

DOS C:\Documents and Settings\eh
echo %errorlevel%
0 <--- all is well

DOS C:\Documents and Settings\eh
dur *.* & echo %errorlevel%
'dur' is not recognized as an internal or external command,
operable program or batch file.  <--- something fishy happenend
0 <--- errorlevel still looks good

DOS C:\Documents and Settings\eh
echo %errorlevel%
9009  <--- better late then never
所以,如果你和普林克都能照章办事,那就试试看

p.S.提高你的希望:

>> Set oWS = CreateObject("WScript.Shell")
>> iRet = oWS.Run("plink -ssh -pw Geheim1 eh@uw ""pipapo -l tmp.txt""", 0, True)
>> WScript.Echo iRet
>>
127
  • 为变量使用保留字
    error
    ,替换为
    Xerror
  • cmd/V:ON…
    启用延迟扩展,由
    !ErrorLevel!
    而不是
    %ErrorLevel%
  • 缺少回声
    echo


  • 谢谢JosefZ,你的代码很有魅力。再次非常感谢
    >> Set oWS = CreateObject("WScript.Shell")
    >> iRet = oWS.Run("plink -ssh -pw Geheim1 eh@uw ""pipapo -l tmp.txt""", 0, True)
    >> WScript.Echo iRet
    >>
    127
    
    set objShell = WScript.CreateObject ("WScript.Shell")
    str = "plink.exe -ssh user@host -pw gbG8qs4D /remote_linux_server/listoffiles.sh > C:\count_data_csv.txt"
    Xerror = "echo error !ErrorLevel!>>C:\count_data_csv.txt"
    objShell.run  "cmd /V:ON /k " & str & "&" & Xerror
    Set objShell = Nothing