2017-05-05 36 views
1

我遇到了一個問題。我通過批處理腳本安裝了一些軟件。我的腳本文件低於當某些命令顯示窗口錯誤時,我們可以捕獲批處理腳本中的錯誤嗎?

msiexec /i "d:\ffr\ff\ff.msi" /qb /NORESTART 
echo %errorlevel% 

這裏,文件d:\ FFR \ FF \ ff.msi在我的系統不存在,因此顯示錯誤消息「安裝程序包不能打開新窗口確認包是否存在,您可以訪問它,或與應用程序供應商......「 然後下一行回聲%ERRORLEVEL%O/p爲0

我們可以做到這一點像

IF EXIST "d:\ffr\ff\ff.msi" (msiexec /i "d:\ffr\ff\ff.msi" /qb /NORESTART ) 

但我需要抓住那個錯誤信息或任何信息g在我的批處理文件中。有什麼辦法嗎?謝謝。

+0

一旦你就ok了點擊新窗口,它應該顯示的錯誤級別1619命令行,你不明白嗎? –

回答

1

所以作爲一個解決方案,你只能打印錯誤或其他文本與它純粹是假如ERRORLEVEL是大於0

@echo off 
SETLOCAL EnableDelayedExpansion 
ver > nul 
msiexec /i "d:\ffr\ff\ff.msi" /qb /QUIET /NORESTART 
if ERRORLEVEL == 1 echo There was a problem with the command error returned %errorlevel% 
+1

沒有所有的時間它顯示errorlevel爲0.就像Errorlevel之前可執行文件:0 可執行文件之後的Errorlevel:0 Errorlevel復位後:0 –

+0

這是不可能的。你嘗試了最後一段代碼嗎? –

+0

我做到了。 'msiexec'根本不觸及'%errorlevel%'。 (Win 7 Enterprise,兩個系統) – Stephan