gpt4 book ai didi

windows - 发出错误检查通过 VBScript 运行的批处理文件

转载 作者:可可西里 更新时间:2023-11-01 10:33:18 25 4
gpt4 key购买 nike

我不确定为什么 InstallResult 在我的 VBScript 中总是返回 1。我在我的批处理文件中放了一个回声,以确认我是否在复制之前删除了源文件,它返回 4,如果成功则什么都不返回。任何帮助,将不胜感激。我的文件应执行以下操作:

  1. 将脚本从网络共享复制到本地计算机。
  2. 运行批处理文件来安装 office(目前有一些用于错误检查的测试代码)。批处理文件应运行并在退出时发布错误代码,如果成功则发布 0。
  3. 返回 VBScript 进行错误检查并运行另一个清理 VBScript。

这是我的代码:

运行安装 bat (VBScript)

Dim objshell, InstallResult

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

FSO.CopyFile "\\altirisdata\AssetMgmt\Tools\WSM\DeleteOffice13Package.vbs", "C:\source\DeleteOffice13Package.vbs"
'DeleteMS2013FilePath = objShell.run ("c:\source\DeleteOffice13Package.vbs", 0, True)

WScript.Sleep 3000

Set objShell = WScript.CreateObject("WScript.Shell")
InstallResult = objShell.run ("cscript.exe C:\source\Microsoft_Office_2013_01\install.bat", 0, True)

WScript.Echo InstallResult

If InstallResult <> 0 Then WScript.Echo "Unable to install Microsoft Office 2013. Please manually check the install results"

If InstallResult = 0 Then
DeleteDelScript = objShell.Run("cscript.exe c:\source\DeleteOffice13Package.vbs", 0, True)
End If

If DeleteDelScript = 0 Then
FSO.DeleteFile("C:\source\DeleteOffice13Package.vbs")
End If

Set FSO = nothing

WScript.Quit

安装.bat

@echo off

xcopy "C:\source\test again\test.txt" "C:\Temp\Temp1\TempTest" /y

if %errorlevel% neq 0 (
exit /b %errorlevel%
)

exit

最佳答案

您得到返回值 1,因为您正尝试使用 VBScript 解释器运行批处理脚本:

InstallResult = objShell.run ("<b>cscript.exe</b> C:\sourc...l<b>.bat</b>", 0, True)

从命令行中删除 cscript.exe,或将其替换为 %COMSPEC%/c:

InstallResult = objShell.run ("<b>%COMSPEC% /c</b> C:\sourc...l.bat", 0, True)

附带说明一下,您的批处理脚本中不需要条件。简单地返回错误级别就足够了:

@echo off
xcopy "C:\source\test again\test.txt" "C:\Temp\Temp1\TempTest" /y
exit /b %errorlevel%

关于windows - 发出错误检查通过 VBScript 运行的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41565761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com