【发布时间】:2021-06-05 19:13:26
【问题描述】:
我在通过 C# 中的 Visual Studio 向终端传递参数时遇到了一些问题。
我可以成功打开终端,但是我传递的参数似乎被忽略了。
一般信息:
- Visual Studio for Mac 版本 8.9 build 1651
- 解决方案 = Cocoa 应用程序
- 使用 Xamarin/Xcode
- 当我打开终端并自己输入时,终端命令可以正常工作
这是我的代码:
var encode = new System.Diagnostics.Process();
encode.StartInfo.FileName = ("/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal");
encode.StartInfo.Arguments = ("ffmpeg -i " + filepath + " -acodec copy file_fixed.mp3");
encode.StartInfo.RedirectStandardInput = false;
encode.StartInfo.RedirectStandardOutput = false;
encode.Start();
如上所述,终端可以正常打开,但不会对我发送给它的参数做任何事情。
我尝试过的事情:
- 设置 RedirectsStandardInput = true 然后手动发送命令,但它从不响应。
- 将 /c、-c 及其所有排列添加到我的参数中
提前感谢您的帮助。
【问题讨论】:
-
为什么要打开终端应用才能玩 ffmpeg?
-
@Jason 因为 ffmpeg 包不适用于 xamarin。我已经尽我所能尝试了。这是我可以使用 ffmpeg 的唯一方法。
-
不,我在问您为什么认为终端是解决方案的一部分。终端不运行任何命令,shell(zsh、bsh 等)会。
-
@Jason 如果我理解正确,解决方案应该是在解决方案的工作目录中包含一个 ffmpeg 版本,然后使用我的参数调用该 ffmpeg 文件以对我的文件进行操作。我已经工作了一整天了,所以我明天会尝试这个,如果成功了再告诉你。非常感谢您的帮助。
标签: c# visual-studio xamarin command-line command-line-arguments