2015-11-10 32 views
0

我的任務是創建一個腳本,用於在安裝安全程序「Heimdal」之前檢查.net framework 4.5是否已安裝,如果沒有安裝.net install它應該安裝.net,然後安裝Heimdal。我嘗試過不同的解決方案,但我無法讓它工作... 我哪裏出錯了?請幫忙。批處理腳本,用於檢查多種因素並決定是否安裝

REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" /s|FIND "4.5" 
IF %ErrorLevel% EQU 0 (
    ::echo.>DotNet4.5 already installed.txt 
GOTO :Heimdal 
) else (
    Start /B /I /WAIT O:\it\Patrick\dotNetFx45_Full_setup.exe /q /norestart 
    echo.>DotNet4.5 Installed.txt 
GOTO :Heimdal 
) 
:Heimdal 
    IF EXIST "C:\Program Files (x86)\Heimdal"(
    echo.>Heimdal already installed.txt 
GOTO :END 
) else (
    msiexec /qn /i "O:\it\Patrick\Heimdal.msi" heimdalkey="xxxxx-xxxx-xxx-xxx-xxxxx" 
) 
:END 
    echo.>DotNetAndHeimdalInstalled.txt 

回答

0

我不知道有關的代碼進一步錯誤,但行

Start /B /I /WAIT O:\it\Patrick\dotNetFx45_Full_setup.exe /q /norestart 

不能工作。 START命令支持/B/WAIT作爲選項。那裏有兩個開關的組合不起作用。

+0

Thx Michael,這已被修復。但是,它仍然是無效的工作。有沒有一種好的方法來排除故障? –

+0

我會爲代碼的每個部分添加一條回顯消息,以便您可以檢查它的碎片位置以及執行所採用的邏輯路徑。逐個測試你的片段。你確定.NET檢查工作正常嗎?當你嘗試創建像'DotNet4.5 already installed.txt'這樣的文本文件時,是否有訪問衝突?順便說一下,當它們包含空格時,應該用引號括住所有路徑和文件。改爲嘗試「DotNet4.5已安裝.txt」!這也可能有幫助! :D – MichaelS

+0

我是本地管理員,所以我應該寫權利。我會嘗試用線上的回聲。我插入引號:D thx哈哈。即時消息漂亮的新手在這個,所以它有點challanging:頁。 –

相關問題