2016-12-16 11 views
0

私は、regクエリを変数にしようとしています。私はそれをwin10で動作させることができますが、私がXPを試しても動作しません。それは、.net4がインストールされていることを確認するためのregクエリです。可変アシスタンス内の特殊文字

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

私が4.0から5.0に変更すると、インストーラが起動し、4のままにしておくと、期待通りにスキップします。

XPでは、設定変数要素にヒットするとすぐに、それは既にインストールされているかどうかにかかわらず、 をインストールしようとします。私はパイプを推測しており、物事はエントリを壊している、どのように私はこれを解決することができます、ありがとう。

+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