我有一個PowerShell腳本輸出視頻文件的持續時間。運行這個腳本給了我預期的結果。Powershell輸出到PHP變量使用shell_exec
$Folder = 'C:\my\path\to\folder'
$File = 'sample1_1280_720.mp4'
$LengthColumn = 27
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.Namespace($Folder)
$objFile = $objFolder.ParseName($File)
$Length = $objFolder.GetDetailsOf($objFile, $LengthColumn)
Write-Output $Length
在一個php文件中,我試圖將這個輸出保存到一個變量中。
<?php
$var = shell_exec("powershell -File C:\my\path\to\psFile.ps1 2>&1");
echo "<pre>$var</pre>";
?>
我從shell_exec獲得的字符串輸出是您從cmd啓動powershell時看到的文本。 Windows PowerShell 版權(C)2016 Microsoft Corporation。版權所有。關於如何提取視頻持續時間的任何建議?
如果你在'了shell_exec()''添加到-NoLogo'你的PowerShell命令會發生什麼? –
「powershell -NoLogo -File ...」 - 給出相同的輸出 – Thomas
這表明''shell_exec()'處理你傳遞的命令行的方式是......奇怪的。如果將代碼添加到腳本中以將結果輸出到文件,該文件是否已創建,並且是否包含您期望的結果? –