我查詢一個註冊表項,使用命令(例如)得到一個值:刪除或批量輸出替換字符串
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
」? (優選僅使用批次)
我查詢一個註冊表項,使用命令(例如)得到一個值:刪除或批量輸出替換字符串
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
」? (優選僅使用批次)
@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
)
而不是直接給鑰匙,迭代的候選人名單,直到將保存數據的變量被定義爲。最後,如果變量保存數據,調整和回顯,否則顯示錯誤
完美無缺,謝謝! – user2987842 2014-09-03 10:59:16
我還有一個問題,有沒有一種方法可以實現:如果Foo鍵不存在,請檢查Foo2鍵是否存在並顯示該鍵 - 如果兩者均不存在,則顯示錯誤。謝謝! – user2987842 2014-09-03 11:32:07
@ user2987842,答案已更新。 – 2014-09-03 11:47:39
我還有一個問題,有沒有辦法我也可以實現: 如果Foo鍵不存在,請檢查Foo2鍵是否存在並顯示那個 - 如果兩者都不顯示,則顯示錯誤。 謝謝! – user2987842 2014-09-03 11:30:50