Я пытаюсь сделать 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, как только он попадает в элемент переменной настройки, он просто пытается установить , независимо от того, что он уже установлен. Я догадываюсь о том, что трубы, и все нарушает вход, как я могу это решить, спасибо.
Я не знаю, если это является источником проблемы вы описываете, но ваши кавычки ('" ') может вызвать некоторые проблемы Помните, что ** один '' 'будет закрыт первым следующим' '' **. Я бы посоветовал вам просто удалить первый '' 'и самый последний' '', а затем вывести каждый '' 'с помощью '^' Итак, вы можете начать с замены вашего кода на «set net4 = REG QUERY» HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP "^ | find/i" 4.0 "> NUL^|^|" .NetFx40. exe "/ passive/norestart' –
' '' также должен быть экранирован с '^'! моими извинениями, я забыл упомянуть об этом в своем предыдущем комм ent –
Да! Спасибо, отлично работает, у меня действительно есть шанс убежать так, но занятые цитаты, как вы заметили, вызывают проблему. интересно, почему выигрыш 10 не нуждается в побегах. здесь приведен фрагмент рабочего кода ** set net4 = REG QUERY "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET Framework Setup \ NDP"^| найти/i "5.0" ^> NUL^|^| «NetFx40.exe»/passive/norestart ** – Tika9o9