Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理文件以插入多个注册表项,并将每个注册表项的结果记录到文件中_Windows_Batch File_Logging_Registry - Fatal编程技术网

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查询结果为空,有没有办法抛出错误显然,上面的代码依赖于设置的值,允许将其插入到另一组键中-但是,如果源值为空,它将破坏我计划的其余部分。因此,如果源值为空,则抛出错误-这可能吗?