【发布时间】:2019-06-03 09:47:50
【问题描述】:
如何将 Windows 显示设置刷新率从 59 更改为 60?
我找不到任何关于如何通过 PowerShell 或批处理脚本完成此操作的信息。 我只会在屏幕分辨率上找到任何东西。
我想要完成的是:
If 60 hz then set 59 hz
else (set 60 hz)
但它似乎没有任何本机 cmdlet?
我只尝试搜索任何可能执行此操作的 cmdlet 或其他 wmi 解决方案,但只找到了如何更改显示分辨率。
编辑:
结合 mhu 发布的内容和 wmi,我设法获得了一个有点接近功能的解决方案。
$RefreshRate = Get-WmiObject -Class:Win32_videocontroller | Select-Object -ExpandProperty currentrefreshrate
if ($RefreshRate = 60){
Set-ScreenResolution -Width 2560 -Height 1440 -Frequency 59
}
else {
Set-ScreenResolution -Width 2560 -Height 1440 -Frequency 60
}
但是,这仍然不能使它在两个刷新率之间进行交换。 关于如何从 WmiObject 中获取数字的任何想法?
编辑2: 所以我在 Select-Object 中添加了 -ExpandProperty 参数。它现在只输出 60 或 59。但它仍然不会在两者之间交换 :(。
【问题讨论】:
-
从字面上看,只有一次 Google 搜索从超级用户论坛返回了这个:superuser.com/questions/1184815/…
-
感谢您的意见。但是我已经尝试了所有这些。它们都需要外部软件或模块才能运行。我对一种更本土的方式更感兴趣。
-
@Heine Kristensen
if 60 then 59if 59 then 60。为什么你想要这个特定的else声明? -
@SNR 我想要
else声明,因为如果我两者都做,我总是会以最后一个结尾。例如。if 59 then 60然后加上if 60 then 59输出总是会变成60,无论如何。 -
@Heine Kristensen Ja,但你为什么想要这种逻辑?抱歉,我第一次可能没有说清楚。
标签: powershell batch-file