2014-09-03 45 views
0

我查詢一個註冊表項,使用命令(例如)得到一個值:刪除或批量輸出替換字符串

REG QUERY HKLM\Software\Foo /v Bar >>c:\Foo.txt 

當打開Foo.txt文件,我得到:

HKEY_LOCAL_MACHINE\Software\Foo 
    Bar REG_SZ foo-bar 

如何刪除或替換密鑰名稱(HKEY_LOCAL_MACHINE\Software\Foo)和「REG_SZ」? (優選僅使用批次)

+0

我還有一個問題,有沒有辦法我也可以實現: 如果Foo鍵不存在,請檢查Foo2鍵是否存在並顯示那個 - 如果兩者都不顯示,則顯示錯誤。 謝謝! – user2987842 2014-09-03 11:30:50

回答

1
@echo off 
    setlocal enableextensions disabledelayedexpansion 

    for /f "delims=" %%a in (' 
     reg query "HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications" /v "Paint" 2^>nul 
     ^|find "REG_SZ" 
    ') do set "data=%%a" 
    >foo.txt echo(%data:REG_SZ=% 

執行該命令,只檢索包含REG_SZ線與這條線存儲到一個變量。然後刪除不需要的數據,並保存到編輯目標文件

適應評論

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    set "data=" 
    for %%k in (
     "NoPaint" "Paint" 
    ) do if not defined data for /f "delims=" %%a in (' 
     reg query "HKEY_LOCAL_MACHINE\SOFTWARE\RegisteredApplications" /v "%%~k" 2^>nul 
     ^|find "REG_SZ" 
    ') do set "data=%%a" 

    if defined data (
     >foo.txt echo(%data:REG_SZ=% 
    ) else (
     echo ERROR 
    ) 

而不是直接給鑰匙,迭代的候選人名單,直到將保存數據的變量被定義爲。最後,如果變量保存數據,調整和回顯,否則顯示錯誤

+0

完美無缺,謝謝! – user2987842 2014-09-03 10:59:16

+0

我還有一個問題,有沒有一種方法可以實現:如果Foo鍵不存在,請檢查Foo2鍵是否存在並顯示該鍵 - 如果兩者均不存在,則顯示錯誤。謝謝! – user2987842 2014-09-03 11:32:07

+0

@ user2987842,答案已更新。 – 2014-09-03 11:47:39