2017-02-27 206 views
0

我试图使用this后的代码。在Windows 10上使用PowerShell播放视频

当我在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文件,这个错误出现:

enter image description here

代码插入.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() 

我会最想感谢你可以帮助我解决这个问题。

谢谢。

+0

你是什么意思“插入代码”?此外,你的“开始玩”线可能意味着在开始时会有一个#号。 –

+0

我已经修改了帖子,我指的是一个.bat文件 –

+0

也许是由于执行策略?在PowerShell窗口中运行get-executionpolicy并共享结果 –

回答

0

您试图在.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 
+0

我想通过.bat使用这段代码,因为我打算在CD中使用自动运行系统来执行这个PowerShell代码。 –

+0

所以你只需要在CD上创建一个.ps1脚本,并通过autorun.bat文件调用它,如上所述。 –