[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 电脑扩展屏幕到电视,如何做一键切换的BAT脚本?

仅电脑屏幕
displayswitch /internal
复制屏幕
displayswitch /clone
扩展屏幕
displayswitch /extend
仅第二屏幕
displayswitch /external


一般常用,就”仅电脑屏幕“+”扩展屏幕“这2个。
希望能实现检测当前屏幕状态,
如果是”仅电脑屏幕“状态,则切换成”扩展“;
如果是”扩展“状态,则切换成”仅电脑屏幕“。




自制脚本目前已实现,可惜没有检测功能,无法一键自动切换。多点手脚。
  1. @echo off&color 0a
  2. :nn
  3. echo.
  4. echo.
  5. echo         ——————电脑屏幕扩展——————
  6. echo.
  7. echo.
  8. echo         0  关闭扩展(仅电脑屏幕)
  9. echo.
  10. echo         +  扩展屏幕(扩展电视屏幕)
  11. echo.
  12. echo         1  复制屏幕(同步电脑屏幕)
  13. echo.
  14. echo         2  仅第二屏幕(切换到电视屏幕)
  15. echo.
  16. echo         0  退出
  17. echo.
  18. echo.
  19. echo.
  20. echo         ——直接回车  (关闭扩展)
  21. echo.
  22. echo.
  23. set /p xz="请输入序号:"
  24. if not defined xz goto :aaa
  25. if "%xz%"=="0" goto aaa
  26. if "%xz%"=="+" goto bbb
  27. if "%xz%"=="1" goto ccc
  28. if "%xz%"=="2" goto ddd
  29. echo.
  30. echo.
  31. @echo 你没有输入正确值,即将退出
  32. ping -n 2 127.0.0.1 1>nul 2>nul
  33. cls
  34. goto ttt
  35. ::仅电脑屏幕
  36. :aaa
  37. cls
  38. echo.
  39. displayswitch /internal
  40. echo 仅电脑屏幕 & ping -n 2 127.0.0.1 1>nul 2>nul & cls & goto ttt
  41. ::扩展屏幕
  42. :bbb
  43. cls
  44. echo.
  45. displayswitch /extend
  46. echo 扩展屏幕 & ping -n 2 127.0.0.1 1>nul 2>nul & cls & goto ttt
  47. ::复制屏幕
  48. :ccc
  49. cls
  50. echo.
  51. displayswitch /clone
  52. echo.
  53. echo 复制屏幕 & ping -n 2 127.0.0.1 1>nul 2>nul & cls & goto ttt
  54. ::仅第二屏幕
  55. :ddd
  56. cls
  57. echo.
  58. displayswitch /external
  59. echo 仅第二屏幕 & ping -n 2 127.0.0.1 1>nul 2>nul & cls & goto ttt
  60. :ttt
  61. exit
复制代码

回复 3# mzzyb


win+P,在win10中反应较慢,不太灵敏。还必须先点一下任务栏,按完快捷键还迟2~3秒才弹出选项。

TOP

2种解决方案,
第一种:把上面4条命令单独做成4个bat文件,你单击相应的就能实现相应的效果
第二种:做成 ...
mzzyb 发表于 2023-1-14 10:48


第二种运行结果如下。。。有检测屏幕状况就好了。貌似不容易实现。。。脚本运行一次就好。

D:\桌面>sc config winmgmt start= auto  1>nul 2<&1

D:\桌面>net start winmgmt  2>1nul

D:\桌面>setlocal ENABLEDELAYEDEXPANSION

D:\桌面>set tee=0

D:\桌面>for /F "tokens=1,* delims==" %a in ('wmic DESKTOPMONITOR get name,ScreenWidth,ScreenHeight,PNPDeviceID /value') do (
set /a tee+=1
if "!tee!" == "3" echo 类 型 = %b
if "!tee!" == "4" echo 其他信息 = %b
if "!tee!" == "5" echo 屏幕高 = %b
if "!tee!" == "6" echo 屏幕宽 = %b
)

D:\桌面>(
set /a tee+=1
if "!tee!" == "3" echo 类 型 =
if "!tee!" == "4" echo 其他信息 =
if "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)

D:\桌面>(
set /a tee+=1
if "!tee!" == "3" echo 类 型 =
if "!tee!" == "4" echo 其他信息 =
if "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)

D:\桌面>(
set /a tee+=1
  f "!tee!" == "3" echo 类 型 = 通用即插即用监视器
  f "!tee!" == "4" echo 其他信息 = 通用即插即用监视器
  f "!tee!" == "5" echo 屏幕高 = 通用即插即用监视器
if "!tee!" == "6" echo 屏幕宽 = 通用即插即用监视器
)
类 型 = 通用即插即用监视器

D:\桌面>(
set /a tee+=1
  f "!tee!" == "3" echo 类 型 = DISPLAY\TXD08C5\5&amp;AC7C279&amp;0&amp;UID12546
  f "!tee!" == "4" echo 其他信息 = DISPLAY\TXD08C5\5&amp;AC7C279&amp;0&amp;UID12546
  f "!tee!" == "5" echo 屏幕高 = DISPLAY\TXD08C5\5&amp;AC7C279&amp;0&amp;UID12546
if "!tee!" == "6" echo 屏幕宽 = DISPLAY\TXD08C5\5&amp;AC7C279&amp;0&amp;UID12546
)
其他信息 = DISPLAY\TXD08C5\5&amp;AC7C279&amp;0&amp;UID12546

D:\桌面>(
set /a tee+=1
  f "!tee!" == "3" echo 类 型 =
  f "!tee!" == "4" echo 其他信息 =
  f "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)
屏幕高 =

D:\桌面>(
set /a tee+=1
  f "!tee!" == "3" echo 类 型 =
  f "!tee!" == "4" echo 其他信息 =
  f "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)
屏幕宽 =

D:\桌面>(
set /a tee+=1
if "!tee!" == "3" echo 类 型 =
if "!tee!" == "4" echo 其他信息 =
if "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)

D:\桌面>(
set /a tee+=1
if "!tee!" == "3" echo 类 型 =
if "!tee!" == "4" echo 其他信息 =
if "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)

D:\桌面>(
set /a tee+=1
if "!tee!" == "3" echo 类 型 =
if "!tee!" == "4" echo 其他信息 =
if "!tee!" == "5" echo 屏幕高 =
if "!tee!" == "6" echo 屏幕宽 =
)

TOP

回复 7# mzzyb


    试运行了,切换不了,net start winmgmt 2>1nul这个代码还生成一个“1nul”的没用文件。

TOP

回复  mzzyb


屏蔽输出的写法通常是这样:或这样:
Batcher 发表于 2023-1-17 12:06



    谢谢B大,热爱bat,不用装软件 ,办事效率提高了很多。

TOP

回复  Batcher


    谢谢老大的指点,我是名86后,见证了论坛的兴起和没落,很庆幸,BAT没有死。这里, ...
mzzyb 发表于 2023-1-17 15:14



    亲,你那边测试没问题吗? 我这边切换不了。

TOP

回复 11# Batcher


   新年好, B大有办法不?

TOP

返回列表