我正在使用psexec
和msiexec
向许多计算机推送Flash。我已经想出如何显示传递和失败的数量,并将打印到另一个文本文件。 (DE_Flash.txt)我试图找出如何显示失败的计算机列表。 test.txt只包含一个计算机名列表。是否可以打印出底部失败的计算机列表?
@echo off
setlocal enabledelayedexpansion
set active_success=0
set plugin_success=0
set total=0
for /F %%G IN (test.txt) DO (
set /a total+=1
psexec \\%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\\Install\Adobe\Flash\flash_player_active_x.msi" /qn >> DE_Flash.txt 2>&1
IF !ERRORLEVEL!==0 set /a active_success+=1
psexec \\%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\\Install\Adobe\Flash\flash_player_plugin.msi" /qn >> DE_Flash.txt 2>&1
IF !ERRORLEVEL!==0 set /a plugin_success+=1
)
echo Active Success: %active_success%/%total% >>DE_FLASH.txt
echo Plugin Success: %plugin_success%/%total% >>DE_FLASH.txt
可能会创建一个名为FailedPCs.txt
的新文件,并将pc名称发送到新文件。
IF !ERRORLEVEL!==0 >>FailedPCs.txt.txt
以某种方式从第一个文件test.txt
发送名称。这就是我试图找出如何从旧的txt文件将计算机名称发送到新的txt文件的问题。
答案 0 :(得分:1)
您也许可以使用此批处理代码:
@echo off
setlocal enabledelayedexpansion
set active_success=0
set plugin_success=0
set total=0
for /F %%G IN (test.txt) DO (
set /a total+=1
psexec \\%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\\Install\Adobe\Flash\flash_player_active_x.msi" /qn >> DE_Flash.txt 2>&1
if !ERRORLEVEL!==0 (
set /a active_success+=1
) else (
echo Player install failed on %%G>>FailedPCs.txt
)
psexec \\%%G -e -h -u tc\test -p Pw#1 -n 5 msiexec /i "\\Install\Adobe\Flash\flash_player_plugin.msi" /qn >> DE_Flash.txt 2>&1
if !ERRORLEVEL!==0 (
set /a plugin_success+=1
) else (
echo Plugin install failed on %%G>>FailedPCs.txt
)
)
echo Active Success: %active_success%/%total% >>DE_FLASH.txt
echo Plugin Success: %plugin_success%/%total% >>DE_FLASH.txt
但也许有必要另外评估附加到DE_FLASH.txt
的安装的输出,以便真正找到每台PC,如果在每台机器上安装了播放器和插件真的很成功。
包含有关安装成功和安装失败的捕获消息的文本文件DE_FLASH.txt
的内容对我们有帮助。