2016-12-16 9 views
1

Я пытаюсь создать текстовый файл для результата запроса Изотерм, который выглядит, как это и работаеттолько если р существует создать текстовый файл

REG QUERY HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C5E637C6-5AB6-426F-B638-7DC533AE5C75} /v InstallLocation > C:\file.txt 

Но я пытаюсь создать только текстовый файл, если reg-запрос находит что-то.

@echo off 
REG QUERY HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C5E637C6-5AB6-426F-B638-7DC533AE5C75} /v InstallLocation 
IF ERRORLEVEL 0 > C:\file.txt 

Я знаю, что делаю это неправильно. с выше, он создает .txt, но он пуст. Я хочу, чтобы опубликовать результат так что в этом случае INSTALLLOCATION

+0

И ваш код .... почему вы не используете 'PowerShell' вместо этого? – Hackerman

+0

Я не знаю powershell столько же – Sam

ответ

0
@echo off 
Set "Key=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C5E637C6-5AB6-426F-B638-7DC533AE5C75}" 
Set "Val=InstallLocation" 
Set "%Val%=" 
For /F "Tokens=1-2*" %%A in (
    'REG QUERY "%Key%" /v %Val% ^|Findstr /i "%Val%"' 
) Do Set %Val%=%%C 
IF Defind %Val% >C:\file.txt Call Echo:%%%Val%%% 

В качестве альтернативы заменить последнюю строку с

SetLocal EnableExtensions EnableDelayedExpansion 
IF Defind %Val% >C:\file.txt Echo:!%Val%! 
+0

Это не сработало для меня после запуска скрипта. – Sam

0

В командной строке:

For /F "Tokens=1,2*" %A In ('Reg Query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C5E637C6-5AB6-426F-B638-7DC533AE5C75}" /V InstallLocation 2^>Nul') Do @If "%A"=="InstallLocation" >C:\file.txt Echo(%C 

В пакетном файле:

@For /F "Tokens=1,2*" %%A In ('Reg Query^ 
"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{C5E637C6-5AB6-426F-B638-7DC533AE5C75}"^ 
/V InstallLocation 2^>Nul') Do @If "%%A"=="InstallLocation" >C:\file.txt Echo(%%C 

Просто имейте в виду, что обычно у обычных пользователей нет разрешений на запись в C: \

+0

Это сработало отлично! Спасибо. У меня есть вопрос. Если бы я использовал один и тот же командный файл для обнаружения в разных версиях, могу ли я использовать тот же скрипт и просто изменить {C5E637C6-5AB6-426F-B638-7DC533AE5C75} или мне нужно изменить имена токенов? – Sam

+0

Извините, за задержку в ответе я не видел, что вы прокомментировали. Да, не должно быть причин, по которым в большинстве случаев вы не можете просто изменить имя или идентификатор GUID, как вы указали. – Compo

 Смежные вопросы

  • Нет связанных вопросов^_^