Loops 如何使用cmd在注册表中循环
我想Loops 如何使用cmd在注册表中循环,loops,variables,batch-file,registry,Loops,Variables,Batch File,Registry,我想 循环一个注册表路径-比如说HKLM\SOFTWARE\Wow6432Node\Mozilla\Firefox,它有几个子路径(在我的例子中是数据库,比如DB1、DB2、DB3),比如Firefox、Mozilla Firefox、Developer Edition等等 获取每个子路径并将一个(始终相同的)键放入其中 很遗憾,我在使用for/f…%%时遇到问题a(cmd表示此时始终%%a是意外的) 我会有一个字符串(比如reg query HKEY_LOCAL_MACHINE\SOFTWAR
HKLM\SOFTWARE\Wow6432Node\Mozilla\Firefox
,它有几个子路径(在我的例子中是数据库,比如DB1、DB2、DB3),比如Firefox、Mozilla Firefox、Developer Edition等等reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Firefox\DB1\\\|findstr/I“DB”| findstr/V“Test”
),但是在for/f中使用这个“命令”。。。('')命令说我不能使用管道
所以我需要处理子路径(DB1、DB2、Mozilla、Mozilla Firefox)。
此外,请帮助我找到一种方法,在HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Firefox\
之后将键名变灰,这样我就可以在变量中填入“DB1”
如果我有这个值,我会添加一个静态值,比如“reg addHKEY\U LOCAL\U MACHINE\SOFTWARE\Mozilla\Firefox\Extensions/t reg\U DWORD/d 0x15F90/f
Soleni尝试以下批处理文件(RegLoopValue.cmd):
@echo off
setlocal
for /f "tokens=*" %%k in ('reg query HKLM\SOFTWARE\Wow6432Node\Mozilla\Firefox') do (
echo reg add %%k\Extensions /t REG_DWORD /d 0x15F90 /f
)
endlocal
> RegLoopValue.cmd
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions\Extensions /t REG_DWORD /d 0x15F90 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\TaskBarIDs\Extensions /t REG_DWORD /d 0x15F90 /f
注:
- 当您对批处理文件满意时,在
之前删除reg add
echo
@echo off
setlocal
for /f "tokens=*" %%k in ('reg query HKLM\SOFTWARE\Wow6432Node\Mozilla\Firefox') do (
echo reg add %%k\Extensions /t REG_DWORD /d 0x15F90 /f
)
endlocal
> RegLoopValue.cmd
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions\Extensions /t REG_DWORD /d 0x15F90 /f
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\TaskBarIDs\Extensions /t REG_DWORD /d 0x15F90 /f
进一步阅读
- -对于所有与Windows命令行相关的内容都是一个很好的参考
- -根据另一个命令的结果循环命令
- -读取、设置或删除注册表项和值,从.REG文件保存和还原
{}
按钮或Ctrl+K!然后至少阅读!如果您在命令行中使用由for/F
解析的管道,您需要像^
一样对其进行转义…最后我这样做了:{@echo on for/F%%I in('dir%1/b/o:gn^ findstr DB_NAME*%2*')do echo reg add HKLM\SOFTWARE\Wow6432Node\%SOFTWARENAME%\%i\%i\CLIENT\SWITCHES/v%KEYNAME\u TO\u add%/t regu SZ-d”%VALUE%/f for/f%%i in('dir%1/b/o:gn^ findstr DB\%NAME*%2*')do reg add HKLM\SOFTWARE\Wow6432Node\%i\SWITCHES%i\SOFTWARENAME%%i\KEYNAME%/v%i\keyu“/f pause}
我无法理解代码块,抱歉……:)谢谢大家的帮助!