只有当reg存在时才创建txt文件

时间:2016-12-16 20:25:22

标签: batch-file command-prompt

我正在尝试为reg查询结果创建一个txt文件,该文件看起来像这样并且正常工作

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

但是我试图只在reg查询找到某些内容时才创建txt文件。

@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

2 个答案:

答案 0 :(得分: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%!

答案 1 :(得分: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:\

的写权限