2016-12-16 33 views
0

我正在嘗試使reg查詢變量。我可以讓它在win10下工作,但是當我嘗試XP時,它不起作用。它是一個reg查詢來確定.net4安裝。可變協助中的特殊字符

set "net4=REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" | find /i "4.0" > NUL || ".NetFx40.exe" /passive /norestart" 

測試勝利10,如果我改變4.0到5.0安裝程序啓動,離開4它按預期跳過。

一旦XP遇到設置變量元素,它只是試圖安裝 ,不管它已經安裝。我猜管道和東西都打破了入口,我該如何解決這個問題,謝謝。

+1

我不知道這是否是您所描述的問題的根源,但你的引號('「')可能會導致一些問題。記住** 1會被第一個後面的''**關閉,我建議你只刪除第一個'''和最後一個''',然後用''''所以你可以通過'set net4 = REG QUERY「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP」^ | find/i「4.0」> NUL^|^|「.NetFx40來代替你的代碼。 exe「/ passive/norestart' –

+1

'''也必須用'^'逃脫!我的歉意,我忘了在我以前的通訊中提到它ent –

+0

是的!謝謝你完美的工作,我確實有這樣的逃避,但你發現,忙碌的語錄引發了一個問題。想知道爲什麼勝利10不需要逃脫。這裏是一個工作代碼片段** set net4 = REG QUERY「HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP」^ | find/i「5.0」^> NUL^|^| 「NetFx40.exe」/ passive/norestart ** – Tika9o9

回答

0

這是由J.Baoby建議工作線:

set net4=REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP" ^| find /i "4.0" ^> NUL ^|^| ".NetFx40.exe" /passive /norestart