2013-04-16 84 views
0

我想在批處理命令中使用reg delete刪除註冊表值。我遇到的問題是我無法刪除該值。下面是我想:使用reg刪除註冊表項刪除

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports\" /v C:\convertdoc\output\SilentPrintTemp\126017829image-gif3.ps 

理想我想刪除所有條目:

REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports\" /v C:\convertdoc\output\SilentPrintTemp\*.ps 

我已經在幾個不同的方式嘗試過了,不同的參數。通常情況下,雙「」在命令結束時停止命令。所以也許我的語法錯了?

回答

0

編輯:

保存此與.bat擴展並運行它:

@echo off 
setlocal 
set "ports=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports" 

rem get only the first token of each line of "reg query" 
for /f %%I in (
    'reg query "%ports%"' 
) do (
    echo(%%I | findstr /i "c:\\convertdoc\\output\\silentprinttemp\\.*\.ps" >NUL && (
     rem (if "findstr" didn't exit with an abnormal error code) 
     echo Deleting item %%I 
     reg delete "%ports%" /v "%%I" /f 
    ) 
) 
+0

謝謝這麼多羅霍。我假設我缺乏經驗,並開始編寫腳本,這就是爲什麼我不知道命令註冊查詢的原因。我會研究你的劇本並學習它。你有沒有什麼好的參考來學習關於批處理腳本的知識? –

+0

@ user2287626 - 如果我的回答對您有所幫助,請考慮點擊複選標記將其標記爲已接受。如果我沒有記錯,在ss64.com上有一個初學者指南,有人說這是值得的。大多數情況下,如果有什麼您有興趣學習,可以通過谷歌搜索,搜索該網站,並且通常查看人們用來解決問題的代碼。如果你想更多地瞭解一個特定的命令(比如'reg'),打開'cmd'提示符並輸入'reg /?'是學習的好方法。 – rojo

+0

該腳本無法正常工作,它搜索價值,我看到腳本如何工作,但它不刪除值。感謝所有的幫助,我一定會結帳ss64.com –