現在、reg queryコマンドを使用して、HKCU \ Software \ random文字でランダムな名前の値に "teststring"というデータ値を見つけようとしています。スクリプトがテストストリングの値を見つけて、親キーHKCU \ Software \ randomを削除するようにします。ここで行うための簡単な方法だReg.exeでデータ値を検索して親キーを削除
@echo off
setlocal enabledelayedexpansion
set Key="HKCU\Software"
set STRING="teststring"
for /f "delims=" %%a in ('reg.exe query "%Key%" /f "%STRING%" /d /s') do (
call :GetValueName Value "%%a"
ECHO reg.exe delete "%Key%" /v "!Value!" /f
)
goto :eof
:GetValueName
set Return=
for %%a in (%~2) do (
if "%%a"=="REG_SZ" (
set %1=!Return:~1!&goto :eof
) else (
set Return=!Return! %%a
)
)
:eof
どのようなエラーが表示されますか? – NobodyNada
REGクエリの構文をどのくらい変更するかにかかわらず、構文が無効です。 – DropItLikeItsHot
@NobodyNadaが欲しかったのは、正確なエラーメッセージだったと思います。また、バッチファイルをデバッグするための一般的なヒントは、デバッグ中にファイルの先頭から '@echo off'を削除することです。エラーがバッチ内にある場合は、その行によってエラーが表示されなくなります。 –