在Windows 10上使用powershell播放视频

在Windows 10上使用powershell播放视频,powershell,windows-10,windows-media-player,Powershell,Windows 10,Windows Media Player,我试着用邮政编码 当我直接在PowerShell终端上使用此代码时,它会正确运行 Add-Type -AssemblyName presentationCore $filepath = "C:\Temp\test\Wildlife.wmv" $wmplayer = New-Object System.Windows.Media.MediaPlayer $wmplayer.Open($filepath) Start-Sleep 2 $duration = $wmplayer.NaturalDur

我试着用邮政编码

当我直接在PowerShell终端上使用此代码时,它会正确运行

Add-Type -AssemblyName presentationCore
$filepath = "C:\Temp\test\Wildlife.wmv"
$wmplayer = New-Object System.Windows.Media.MediaPlayer
$wmplayer.Open($filepath)
Start-Sleep 2 
$duration = $wmplayer.NaturalDuration.TimeSpan.Seconds
$wmplayer.Close()

start playing
$proc = Start-process -FilePath wmplayer.exe -ArgumentList $filepath -PassThru
但是当我在.bat文件上运行代码时,会出现一个cmd窗口,并在几秒钟内消失,无需进一步操作

如果在CMD上运行.bat文件,则会出现以下错误:

.bat文件中插入的代码是:

Add-Type -AssemblyName presentationCore
 $filepath = [uri] "C:\Users\??????\Desktop\small.mp4"
 $wmplayer = New-Object System.Windows.Media.MediaPlayer
 $wmplayer.Open($filepath)
 Start-Sleep 2 # This allows the $wmplayer time to load the audio file
 $duration = $wmplayer.NaturalDuration.TimeSpan.TotalSeconds
 $wmplayer.Play()
 Start-Sleep $duration
 $wmplayer.Stop()
 $wmplayer.Close()
如果你能帮我解决这个问题,我将不胜感激


谢谢。

您正试图在.bat文件中运行PowerShell命令(因此,PowerShell引擎未用于执行代码,因此命令失败)

您需要将脚本保存为.ps1文件,然后通过其完整路径名或更改到脚本所在的目录并输入以下内容从命令行执行脚本:

.\scriptname.ps1
其中scriptname是保存文件的名称

如果要通过.bat文件执行脚本,仍需将其另存为.ps1,然后创建包含以下内容的.bat文件:

Powershell.exe -File  C:\path\to\my\script\myscript.ps1
显然,我们正在相应地修正这条道路。注意,以这种方式运行脚本没有任何好处,但您可能使用.bat文件的一个原因是,如果您需要更改执行策略以允许脚本执行(我认为您的情况下不会这样做),如下所示:

Powershell.exe -executionpolicy unrestricted -File C:\path\to\my\script\myscript.ps1

“插入代码”是什么意思?另外,您的“开始播放”行可能在开始时有一个#。我已经修改了帖子,我指的是一个.bat文件,可能是因为执行策略?在powershell窗口中运行get executionpolicy并共享结果查看用于运行脚本的.bat文件的内容也会有所帮助。另外,如果先打开cmd提示符,然后运行它,您应该能够看到返回的错误。Get-ExecutionPolicy=RemoteSigned。我想通过.bat使用此代码,因为我将在CD中使用自动运行系统执行此PowerShell代码。因此,您只需在CD上创建一个.ps1脚本,并通过autorun.bat文件调用它,如上所述。