Reg Query For Loop and Reg Add failure
Posted: 02 May 2020 08:04
I'm trying retrieve the path of a variable registry key location using "S/N:" and use it in a REG ADD routine.
The issue is that it is returning the same result 3 times over for each key with "S/N:" and this does not change any of the target data values.
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
What I am trying to achieve is looping through the Registry location HKLM\SYSTEM\CurrentControlSet\Enum\USB, get the variable location VID_xxxxxx\S/N:xxxxx and set REG_DWORD values under the key "Device Parameters".
Here is my test script which runs without error but makes no changes:
@ECHO OFF
FOR /f "tokens=6,7 delims=\" %%i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Enum\USB" /s ^|find /I "S/N:"') DO (
SET TARGETPATH=%%i\%%j
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "AllowIdleIrpInD3" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "DeviceSelectiveSuspended" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "EnhancedPowerManagementEnabled" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "EnumerationRetryCount" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "LegacyTouchScaling" /t REG_DWORD /d "0" /f
)
PAUSE
If anyone can point out where I am failing I would really appreciate it.
The issue is that it is returning the same result 3 times over for each key with "S/N:" and this does not change any of the target data values.
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_0820\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_082B\S/N:3D3591F0AC598F44820320E4984DB67A_Rev:NBCHMAAJ1
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
c:\>SET TARGETPATH=VID_05E0&PID_1200\S/N:7014279E32044D4495B3B779E663FCC2_Rev:NBCACAAS3
What I am trying to achieve is looping through the Registry location HKLM\SYSTEM\CurrentControlSet\Enum\USB, get the variable location VID_xxxxxx\S/N:xxxxx and set REG_DWORD values under the key "Device Parameters".
Here is my test script which runs without error but makes no changes:
@ECHO OFF
FOR /f "tokens=6,7 delims=\" %%i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Enum\USB" /s ^|find /I "S/N:"') DO (
SET TARGETPATH=%%i\%%j
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "AllowIdleIrpInD3" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "DeviceSelectiveSuspended" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "EnhancedPowerManagementEnabled" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "EnumerationRetryCount" /t REG_DWORD /d "0" /f
REG ADD "HKLM\SYSTEM\CurrentControlSet\Enum\USB\%TARGETPATH%\Device Parameters" /v "LegacyTouchScaling" /t REG_DWORD /d "0" /f
)
PAUSE
If anyone can point out where I am failing I would really appreciate it.