首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP: shell_exec();不工作与cmd相同吗?[WIN10 CMD]

PHP: shell_exec();不工作与cmd相同吗?[WIN10 CMD]
EN

Stack Overflow用户
提问于 2021-02-23 22:21:43
回答 2查看 276关注 0票数 0
代码语言:javascript
运行
复制
$MergeCommand = "C:\\Users\\Admin\\Documents\\ffmpeg-2021-02-20-git-51a9f487ae-full_build\\bin\\ffmpeg -i \"" . $path . $videoname . "\" -i \"" . $path . $audioname . "\" -c:v copy -c:a aac \"" . $path . $filename . "FINAL.mp4\"";
shell_exec($MergeCommand);
echo($MergeCommand);

操作系统: Windows 10

很抱歉我给你排了这么长很痛的队伍。

通过测试,我知道我的代码到达了shell_exec($MergeCommand);行。

之后,它甚至正确地反映了$MergeCommand的值。

问题是,一旦它试图执行$MergeCommand,什么都不会发生。只是看起来要走了

进入下一排。应该发生的是,它将视频文件和音频文件合并在一起。

没有输出(尝试回显其结果),也没有任何错误消息。

当使用exec($MergeCommand, $output, $retvalue);查找返回值时,它返回1。

但是,如果我复制echo($MergeCommand);打印出来的确切行,打开cmd,粘贴

它在那里运行它,它做的正是它应该做的。

现在,我想知道为什么相同的命令在常规cmd中工作,而在运行时却不能工作

通过shell_exec();还是exec();

这并不是说shell_exec();根本不起作用,我得出的结论是

运行该命令时发生。例如,shell_exec("echo hello world");工作

完全没问题。

EN

回答 2

Stack Overflow用户

发布于 2021-02-23 22:28:31

似乎ffmpeg文件扩展名丢失了。请尝试

代码语言:javascript
运行
复制
$MergeCommand = "C:\\Users\\Admin\\Documents\\ffmpeg-2021-02-20-git-51a9f487ae-full_build\\bin\\ffmpeg.exe -i \"" . $path . $videoname . "\" -i \"" . $path . $audioname . "\" -c:v copy -c:a aac \"" . $path . $filename . "FINAL.mp4\"";
shell_exec($MergeCommand);
echo($MergeCommand);
票数 0
EN

Stack Overflow用户

发布于 2021-02-24 09:42:37

好吧,我自己修好了!

我其实不知道它是怎么修好的,但它确实修好了。

我交换了第一个shell_exec($strCmd);(命令i

(在$MergeCommand之前运行),其中:

代码语言:javascript
运行
复制
$output = null;
exec($strCmd, $output);
$output = implode(" ", $output);

现在一切都很好。似乎是第一个shell_exec

,它成功地执行命令,阻止任何其他cmd执行。

之后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66341971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档