咨询:在PowerShell中实现Windows Media Player全屏播放的正确语法
解决PowerShell中调用Windows Media Player全屏播放共享MP4的问题
我懂你遇到的糟心事了——原来在CMD里跑的好好的bat命令,到PowerShell里就卡壳了,甚至试了Start-Process也没达到全屏播放的效果。问题主要出在PowerShell的引号解析规则和参数传递逻辑上,咱们一步步把它搞定:
核心问题拆解
- 路径里的
$符号坑:在PowerShell的双引号字符串中,$会被当成变量标识符,所以\\fileshare1\videos$\video.mp4里的$会被PowerShell尝试解析成变量,直接导致路径识别错误。 Start-Process的参数漏传:你之前的命令只指定了视频文件,没给Windows Media Player传递全屏指令——WMP不会自动全屏打开文件,必须靠它自身的/fullscreen参数触发。
正确的PowerShell命令写法
方法1:直接调用WMP并传递参数(推荐)
用Start-Process明确指定WMP的执行路径,同时正确传递视频路径和全屏参数:
# 用单引号包裹路径,避免$被PowerShell解析成变量 Start-Process -FilePath "C:\Program Files\Windows Media Player\wmplayer.exe" -ArgumentList '\\fileshare1\videos$\video.mp4', '/fullscreen'
要是习惯用双引号,记得给$加反引号转义:
Start-Process -FilePath "C:\Program Files\Windows Media Player\wmplayer.exe" -ArgumentList "\\fileshare1\videos`$\video.mp4", "/fullscreen"
-ArgumentList会自动处理参数的空格和引号问题,确保WMP能精准识别共享路径和全屏指令。
方法2:通过CMD中转执行原bat命令
如果你想沿用原来的CMD命令逻辑,可以在PowerShell里调用cmd /c来执行,注意嵌套双引号的写法:
cmd /c ""C:\Program Files\Windows Media Player\wmplayer" "\\fileshare1\videos$\video.mp4" /fullscreen"
外层双引号用来告诉PowerShell这是一个完整的CMD命令,内层双引号则是给CMD解析用的,完美兼容原来的bat命令逻辑。
为什么你之前的命令失效?
你尝试的Start-Process "\\fileshare1\videos$\video.mp4" -WindowStyle Maximized只是让WMP的窗口最大化,并不是真正的全屏播放——WMP的全屏需要自身的/fullscreen参数触发,而非PowerShell的窗口样式设置。另外,路径里的$没转义,也会导致PowerShell找不到正确的共享文件。
内容的提问来源于stack exchange,提问作者Ralluhb
相关产品推荐
相关产品推荐

