2016-12-16 30 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