来自 C# 的多个 CMD 命令?

2024-02-20

所以我想知道,如何使用 C# 在 CMD 中执行多个命令?我的意思是……我有一个 .exe 文件,它依赖于通过 cmd 变量 (VAMP_PATH) 查找文件 [是的,我正在使用 VAMP 插件]。所以我在 CMD 中使用它的方式是:

-set VAMP_PATH:C:\ (press Enter)
-sonic-annotator.exe -d etc...

但是,我在尝试将 CMD 与 C# 一起使用方面还很陌生,所以我想知道我应该做什么?目前我有这个代码:

Process p = new Process();
string args = "\"" + sonicannotatorpath + "\" -t \"" + transpath + "\" \"" + filepath + "\" -w csv --csv-force";
p.StartInfo = new ProcessStartInfo("cmd", args)
{
   RedirectStandardOutput = true,
   RedirectStandardInput = true,
   UseShellExecute = false,
   CreateNoWindow = true
};
p.Start();
p.StandardInput.WriteLine(args);
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Console.WriteLine("DONE");
Console.Read(); 

上面的代码只执行我的 CMD 命令的第二行...但是由于 .exe 所需的文件已经位于其默认位置,因此不指定 VAMP_PATH 命令没有问题。

我的问题是我不知道如何添加另一个命令。我是否只需要复制 p.StandardInput.WriteLine 命令并输入另一个命令作为参数?因为我读到这方面存在一些问题。

另外,我想问一下,因为如果没有 p.StandardInput.WriteLine 命令,并且仅使用 ProcessStartInfo 中的“args”参数,我的命令根本不会执行(即使将 \c 添加到 args)。你为什么认为这是?

Thanks!


如果不先完成第一个进程,则无法从一个进程对象运行两个命令(实际上是两个进程)。

运行第一个,调用p.WaitForExit();然后构建并运行第二个。

为了启动该过程,您不需要像当前那样将参数写入命令行。它应该按照你正在做的方式工作。

p.StartInfo.Arguments = args;
p.StartInfo.FileName = "cmd";

可以为您设置参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 C# 的多个 CMD 命令? 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • 按成员序列化

    我已经实现了template
  • 为什么当实例化新的游戏对象时,它没有向它们添加标签? [复制]

    这个问题在这里已经有答案了 using System Collections using System Collections Generic using UnityEngine public class Test MonoBehaviou
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • 如何向标准信号处理程序添加代码?

    我有一个在 Linux 上运行的 C 应用程序 我需要向标准信号处理程序添加一些代码 我的想法是设置我的处理程序 将指针保存到标准处理程序 并从我的代码中调用保存的处理程序 不幸的是 signal 和 sigaction 都没有返回指向标准
  • 如何使用 Erlang/OTP 25 编译器重新编译 rebar3?运行灵药 1.13.4

    我正在关注免费的截屏视频 教程凤凰城 LiveView 启动器 https online pragmaticstudio com courses liveview starter modules 2但我什至无法开始 因为mix setup失
  • 逐行过滤输入流

    我正在从 Amazon S3 检索大型 gzip 压缩文件 我希望能够即时转换这些文件的每一行并将输出上传到另一个 S3 存储桶 上传 API 需要一个InputStream https docs aws amazon com AWSJav
  • 用鼠标拖动无边框窗口形式[重复]

    这个问题在这里已经有答案了 可能的重复 C 使无边框表单可移动 https stackoverflow com questions 1592876 c sharp make a borderless form movable 我通过设置在
  • IE11通过javascript检测兼容性视图是否打开

    有谁知道当我通过 javascript 访问网站时如何检查 IE 11 兼容模式是否打开 我将 url 添加到列表兼容性视图设置中 但当我这样做时 navigator userAgent 在开发者工具中 它返回 Mozilla 5 0 Wi
  • 如何建立 FTP 连接?

    我正在尝试使用 iPhone iPad 模拟器 Xcode 设置 FTP 连接 到目前为止 我发现我需要使用 CFFTP API 但我没有成功 我浏览了网络 最终遵循了我认为最清楚的内容 即 http developer apple com
  • MySQL服务器“正在读取初始通信数据包”,系统错误:111 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将我的网站移至戈达迪服务器 但是即使进行了足够的更改 SQL 连接也无法工作 而之前工作得很好
  • FormsAuthenticationTicket.expiration v web.config 值超时

    这是一个 MVC2 网站 我在 FormsAuthentication 票证方面遇到问题 用户超时30分钟后无法重新登录 在测试期间 DateTime Now AddMinutes 30 值设置为 5000 一切正常 但现在已更改为 30
  • 如何为 Swagger UI 定义 [FromQuery] 参数的默认值?

    我有一个行动 HttpGet Route foo public ActionResult Foo FromQuery MyClass request var image ToImage WidgetType MedianSalesPrice
  • 什么是以及如何从我的数据库中删除表空间错误? [复制]

    这个问题在这里已经有答案了 由于负载脱落问题 我的数据库中的一张表已损坏 我删除了该表 现在我想再次创建该表 我明白了error 错误 1813 表 的表空间zorkif sys user accounts 存在 请在导入之前丢弃表空间 S
  • 如何/在哪里定义 Xcode 中的 App ID 前缀?

    作为一名新的 iOS 开发人员 我尝试为我的应用程序定义 Bundle Seed ID 应用程序 ID 前缀 Xcode 中如何 在哪里定义 Bundle Seed ID 应用程序 ID 前缀 请提供详细步骤 链接在这里 https dev
  • 在设计模式下显示带有自定义控件的 WinForm 时出错

    我有一个属于类库一部分的用户控件 我从我的解决方案中引用了这个项目 这会将引用项目中的控件添加到我的工具箱中 我将控件添加到表单中 一切看起来都不错 我编译并运行 完美的 但是当我关闭带有控件的 frm 并重新打开它时 出现此错误 代码继续
  • nsdictionary 中的块?

    因此 我将块操作存储到 nsmutabledictionary 中 然后在 Websocket 上返回响应时调用它们 这会将异步请求转换为块语法 这是精简的代码 void sendMessage NSString message respo
  • Gradle compileKotlin includeRuntime 未将运行时添加到 jar

    我有一个 Kotlin Gradle 项目 我想在 jar 文件中包含 Kotlin 的运行时和 stdlib 我目前正在使用它 但当我使用 build gradle 配置构建项目时 它不包括运行时或 stdlib compileKotli
  • 不循环C++计算数字的位数

    我必须计算一个数字的位数 我将数字除以 10 直到得到 0 每次迭代都会递增计数器 int num cin gt gt num while num gt 0 counter num num 10 挑战不在于使用任何循环或递归 而只是使用if
  • Spring Boot - 创建泛型存储库

    我的 Web 应用程序中有许多服务执行经典的 CRUD 操作 这些是参数部分 为了避免为每个实体类创建一个存储库接口 我想创建一个通用存储库 我尝试了下面的代码 但只有当我有一个控制器时才有效 public class BaseContro
  • python 中的公平信号量

    python 中是否有可能有一个公平的信号量 它可以保证阻塞线程按照它们调用的顺序解除阻塞acquire 您可能必须用其他活动部件来构建一个 例如 创建一个Queue Queue 每个听众都会发布一个全新的Event 然后它会等待 当需要唤
  • delphi 中打印到非默认打印机

    我想使用 Delphi 将打印作业发送到打印机 理想情况下 我希望能够在不让用户从打印对话框中选择打印机的情况下执行此操作 我希望能够使用 Windows 默认打印机以外的打印机 我尝试通过打印机名称设置打印机 Vcl Printers P
  • 如何处理尺寸未知的二维数组?

    我正在编写一个用于矩阵乘法的 C 函数 它需要两个二维整数数组 如果我知道输入数组的尺寸 我就可以做到这一点 但我想创建一个更通用的函数 如何找到它们的尺寸 以及当我在编译时不知道产品的尺寸时如何返回数组 如果您只有指向数组开头的指针 则无
  • 来自 C# 的多个 CMD 命令?

    所以我想知道 如何使用 C 在 CMD 中执行多个命令 我的意思是 我有一个 exe 文件 它依赖于通过 cmd 变量 VAMP PATH 查找文件 是的 我正在使用 VAMP 插件 所以我在 CMD 中使用它的方式是 set VAMP P