Unix命令/脚本是否在windows上工作?

Unix命令/脚本是否在windows上工作?,windows,shell,unix,Windows,Shell,Unix,我有一个使用unix管道的命令 system("curl " . escapeshellarg($flv['dl']) . " | ffmpeg -f flv -i - -f mp3 -ab 320k pipe:1"); 我该怎么做才能让同样的事情在windows中发生 谢谢如果您不关心性能,将unix脚本移植到windows的最简单方法是安装 它是Windows上的Unix API仿真层,在linux上模拟win32 您还可以下载每个命令行工具的windows版本 请参阅提供多个win

我有一个使用unix管道的命令

 system("curl " . escapeshellarg($flv['dl']) . " | ffmpeg -f flv -i - -f mp3 -ab 320k pipe:1");
我该怎么做才能让同样的事情在windows中发生


谢谢

如果您不关心性能,将unix脚本移植到windows的最简单方法是安装

它是Windows上的Unix API仿真层,在linux上模拟win32


您还可以下载每个命令行工具的windows版本

  • 请参阅提供多个windows版本二进制文件(不要采用cygwin版本)
  • 请注意,该版本仅适用于windows的夜间版本。未编译稳定版本

这种方法需要为每个工具找到特定的下载URL,有时甚至会导致你从源代码中编译二进制文件!当你只需要2个或3个工具时,它仍然是合理的。但是,否则,它是如此的不确定和耗时,你应该只考虑性能或低依赖性部署是个问题。我认为,通过curl将文件下载到ffmpeg的管道是最好的方式

卷曲“http://domain.com/file.flv“| ffmpeg-f flv-i--f mp3-ab 320k管道:1


curl和ffmpeg可用于windows。

系统()调用意味着您正在从其他语言执行此shell语句,
建议使用perl。甚至Windows命令提示符也支持管道,因此如果您将上述内容更改为仅打印命令行,您可以尝试从Windows命令提示符手动执行相同的操作。您真正的问题可能是de>curl和
ffmpeg
已安装并将其路径添加到PATH环境变量中,而无需使用UNIX样式的shell。您好@Jim Garrison,为什么要删除cygwin标记?@Tony-escapeshellarg()这是一个PHPfunction@lunixbochs:感谢您的洞察力。快速浏览PHP文档表明,PHP的
系统
也只是将指令传递给操作系统的默认命令解释器,而无需内部处理管道,因此似乎仍然需要在路径中安装curl和ffmpeg,而无需任何更改但请注意,Wine运行未经修改的windows二进制文件,而Cygwin要求您重新编译代码。