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

求助:使用批处理文件切换双显示器模式失败问题

问题分析与解决方案

原批处理无法正常工作的核心问题是错误地用powershell命令的ERRORLEVEL判断显示模式——powershell命令只要执行成功,ERRORLEVEL就会是0,和当前激活的显示器数量无关,导致判断逻辑完全失效。

正确的思路是统计当前激活的显示器数量:

  • 仅内置显示器激活时,激活数量为1
  • 双屏扩展模式时,激活数量≥2

修正后的批处理代码如下:

@echo off
setlocal enabledelayedexpansion

REM 统计当前激活的显示器数量
for /f %%a in ('powershell -command "(Get-WmiObject -Namespace root\wmi -Class WmiMonitorConnectionParams | Where-Object { $_.Active }).Count"') do set activeCount=%%a

REM 根据激活数量切换模式
if !activeCount! geq 2 (
    echo 切换至仅内置显示器模式...
    displayswitch.exe /internal
) else (
    echo 切换至双屏扩展模式...
    displayswitch.exe /extend
)

echo 显示模式切换完成。
pause
endlocal

代码说明

  • 使用setlocal enabledelayedexpansion启用延迟变量扩展,确保循环内赋值的变量能正确读取
  • 通过powershell筛选出Active为True的显示器,统计其数量
  • 根据数量判断当前模式:≥2则是扩展模式,切换到单屏;否则切换到扩展模式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:32:42