Windows 批处理文件以插入多个注册表项,并将每个注册表项的结果记录到文件中
我正在寻求一些建议和帮助 我有一个脚本,它在注册表中插入了许多值Windows 批处理文件以插入多个注册表项,并将每个注册表项的结果记录到文件中,windows,batch-file,logging,registry,Windows,Batch File,Logging,Registry,我正在寻求一些建议和帮助 我有一个脚本,它在注册表中插入了许多值 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "SystemID" /t REG_SZ /d "%SystemID%" reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "Servername" /t REG_SZ /d "%Servername%" reg add "HKEY_L
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "SystemID" /t REG_SZ /d "%SystemID%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "Servername" /t REG_SZ /d "%Servername%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC01_IPv6" /t REG_SZ /d "%NIC01_IPv6%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC01_GWv6" /t REG_SZ /d "%NIC01_GWv6%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC02_IPv6" /t REG_SZ /d "%NIC02_IPv6%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC02_GWv6" /t REG_SZ /d "%NIC02_GWv6%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC03_IPv6" /t REG_SZ /d "%NIC03_IPv6%"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" /f /v "NIC03_GWv6" /t REG_SZ /d "%NIC03_GWv6%"
我正在寻找将每个注册表项的单个结果写入日志文件的最佳方法,可以是OK,也可以是ERROR(例如)
我已经找到了许多替代方法,使用“import*.reg”和%ERRORLEVEL%写入日志文件,但这只是大规模的,我非常希望每个键都有单独的结果
有什么好的建议吗
谢谢你的建议。
谢谢
B列出
值
和数据
对,然后对其进行处理,分析错误级别
,并将状态打印到日志文件中:
>"logfile.txt" (
for %%L in (
"SystemID %SystemID%"
"Servername %Servername%"
"NIC01_IPv6 %NIC01_IPv6%"
"NIC01_GWv6 %NIC01_GWv6%"
"NIC02_IPv6 %NIC02_IPv6%"
"NIC02_GWv6 %NIC02_GWv6%"
"NIC03_IPv6 %NIC03_IPv6%"
"NIC03_GWv6 %NIC03_GWv6%"
) do for /f "tokens=1*" %%a in ("%%~L") do (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" ^
/f /v "%%a" /t REG_SZ /d "%%b" >nul
if errorlevel 1 (echo ERROR: %%a = %%b) else (echo OK: %%a = %%b)
)
)
或者,如果没有任何值具有,则仅使用延迟扩展的名称列表代码>字符:
setlocal enableDelayedExpansion
>"logfile.txt" (
for %%a in (
SystemID
Servername
NIC01_IPv6
NIC01_GWv6
NIC02_IPv6
NIC02_GWv6
NIC03_IPv6
NIC03_GWv6
) do (
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Company\Configure" ^
/f /v "%%a" /t REG_SZ /d "!%%a!" >nul
if errorlevel 1 (echo ERROR: %%a = !%%a!) else (echo OK: %%a = !%%a!)
)
)
看起来很棒!谢谢你,我回家后会试一试的。我现在有机会玩这个,真是太棒了,谢谢你。不是我需要它,但也可以回显到cmd吗?是的,如果。。。echo
行并使用输出重定向:方法1)删除整体重定向,并使用
将其放入echo命令,如(如果……(echo…)或(echo…)>>文件或方法2)保留整体重定向,但在复制的行上重定向到>con
(控制台)。干杯,昨晚在你发帖之前我试过这个-一定是打字错误,因为今天可以用了#Lackoffsleep谢谢伙计!现在我醒了,如果reg查询结果为空,有没有办法抛出错误显然,上面的代码依赖于设置的值,允许将其插入到另一组键中-但是,如果源值为空,它将破坏我计划的其余部分。因此,如果源值为空,则抛出错误-这可能吗?