У меня есть сценарий 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 - это текст, который вы видите при запуске powershell из cmd. Windows PowerShell Copyright (C) 2016 Microsoft Corporation. Все права защищены. Любые предложения по извлечению продолжительности видео?
Что произойдет, если вы добавляете '-NoLogo' вашу команду PowerShell в' shell_exec() '? –
«powershell -NoLogo -File ...» - дает тот же результат – Thomas
Это говорит о том, что что-то о том, как 'shell_exec()' обрабатывает командную строку, которую вы передаете, является ... нечетным. Если вы добавляете код в свой скрипт для вывода результатов в файл, создается ли файл и он содержит то, что вы ожидаете от него? –