Cmd 循环远程注册表检查

Cmd 循环远程注册表检查,cmd,remote-registry,Cmd,Remote Registry,我正在尝试检查列表中的计算机是否使用批处理文件安装了Outlook 2010 standalone,如果我对每个检查进行硬编码,我可以运行脚本,但我正在寻找从文件中提取的内容,这就是我目前所拥有的: 重要信息: 我想通过批处理文件来运行它,计算机可以是Windows7和XP的混合体,它需要能够区分Office 2010与Outlook和Outlook Standalone之间的区别 @echo off setlocal enabledelayedexpansion set INPUT_FILE=

我正在尝试检查列表中的计算机是否使用批处理文件安装了Outlook 2010 standalone,如果我对每个检查进行硬编码,我可以运行脚本,但我正在寻找从文件中提取的内容,这就是我目前所拥有的:

重要信息:

我想通过批处理文件来运行它,计算机可以是Windows7和XP的混合体,它需要能够区分Office 2010与Outlook和Outlook Standalone之间的区别

@echo off
setlocal enabledelayedexpansion
set INPUT_FILE=%1
set UP_OUTPUT_FILE=yes.txt
set DN_OUTPUT_FILE=no.txt
echo These Machines have Outlook 2010: >> %UP_OUTPUT_FILE%
echo These Machines don't have Outlook 2010: >> %DN_OUTPUT_FILE%

for /f %%i in (%INPUT_FILE%) do (
     reg query \\%%i\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-001A-0000-0000-0000000FF1CE} > NUL
        if errorlevel 1 goto error1
        if errorlevel 0 goto error0

        :error1
        echo %%i >> %DN_OUTPUT_FILE%
        goto next1

        :error0
        echo %%i >> %UP_OUTPUT_FILE%
        :next1
)
我遇到的问题是它不断返回错误:

) was unexpected at this time.
如果我删除了,它会完全中断脚本,并且不会运行,如果我移动它,它会提前切断循环。

对于/f%%I in%INPUT\u FILE%do reg query\\%%i\HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{90140000-001A-0000-0000-0000000 FF1CE}>NUL 如果错误级别为1 echo%%i>>%DN\u输出文件% 其他的 回显%%i>>%UP\u输出\u文件%
每当在for循环中执行goto命令时,循环就会被取消。

谢谢,伙计,这是一个惊人的快速、令人惊讶的过程,至少值327个互联网点数!如果你再快点的话,你可能会得到328