You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写批处理脚本根据zac ps命令输出执行对应操作?

用批处理实现Zenworks ZAC补丁扫描结果的自动判断与处理

工作中使用Zenworks的zac工具执行zac ps(补丁扫描)命令时,会先输出以下固定内容:

Processing command:  ps

Starting patch scan .....

随后会返回三种结果之一:

  • The patch scan has completed and reported results to the server(扫描完成并上报结果)
  • There was an error scanning the computer: ANALYZE_FAILED(扫描分析失败)
  • There was an error scanning the computer: FAILED_TO_REPORT_RESULTS(扫描结果上报失败)

可以通过批处理脚本捕获命令输出,根据不同结果自动执行对应修复操作,实现代码如下:

@echo off
setlocal enabledelayedexpansion

:: 执行ZAC补丁扫描命令,并将输出保存到临时文件
zac ps > "%temp%\zac_ps_output.txt"

:: 检查输出中是否包含ANALYZE_FAILED
findstr /i "ANALYZE_FAILED" "%temp%\zac_ps_output.txt" >nul
if !errorlevel! equ 0 (
    echo 检测到扫描分析失败,执行修复命令...
    zac bv "discover applicable updates"
    goto :cleanup
)

:: 检查输出中是否包含FAILED_TO_REPORT_RESULTS
findstr /i "FAILED_TO_REPORT_RESULTS" "%temp%\zac_ps_output.txt" >nul
if !errorlevel! equ 0 (
    echo 检测到结果上报失败,执行文件删除修复...
    :: 替换为你需要删除的指定文件路径
    del /f /q "C:\path\to\your\target_file.ext"
    goto :cleanup
)

:: 扫描成功的情况
echo 补丁扫描已成功完成并上报结果。

:cleanup
:: 删除临时输出文件
del /f /q "%temp%\zac_ps_output.txt"
endlocal

脚本说明

  • 启用setlocal enabledelayedexpansion确保条件判断中errorlevel的取值准确
  • 将zac ps的输出重定向到临时文件,避免控制台输出干扰判断逻辑
  • 用findstr匹配错误关键词,通过errorlevel判断匹配结果(匹配成功时errorlevel为0)
  • 针对两种错误分别执行对应修复操作,扫描成功时仅提示结果
  • 最后自动清理临时文件,避免残留垃圾

内容的提问来源于stack exchange,提问作者abnormalfantasy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:52:05