我想在Windows CMD控制台中运行两个命令.
在Linux中,我会这样做
touch thisfile ; ls -lstrh
Run Code Online (Sandbox Code Playgroud)
它是如何在Windows上完成的?
&&众所周知难以在谷歌搜索,但我发现的最好的是这篇文章说要使用-and.
不幸的是它没有提供任何更多的信息,我无法找到我应该做的事情-and(再次,一个众所周知的难以搜索)
我正在尝试使用它的上下文是"执行cmd1,如果成功,执行cmd2",基本上这样:
csc /t:exe /out:a.exe SomeFile.cs && a.exe
Run Code Online (Sandbox Code Playgroud)
这应该是一个容易的几个代表谁知道,谢谢!
编辑:如果你只想在一行上运行多个命令,而你不在乎第一个是否失败,你可以使用;我的大多数用途这是好的
例如:kill -n myapp; ./myapp.exe.
我想从C#执行一个应用程序(命令行应用程序)...我想在执行这个应用程序并向它提供输入后,我想解析将导致它的输出.因为,它会输出许多东西,我想从中获取,只需要我需要的东西......
我怎样才能做到这一点 ??
如何在c#中获取输出,然后从中获取我需要的东西?
为了在C#中执行命令行...我想用"Jeff MC"方式,他在这个帖子中解释了 如何:在C#中执行命令行,得到STD OUT结果
非常感谢
当您搜索执行命令行工具或命令提示符的方法时,您会发现太多结果,如此问题,此问题或本文.它们都包含完全相同问题的解决方案.但是,我目前正在开发的程序必须执行命令行工具近500次.当我执行以下操作时:
for (int i = 0; i < 500; i++)
{
Process.Start("cmd","My Input: " + i);
}
Run Code Online (Sandbox Code Playgroud)
计算机停止响应一段时间,因为同时打开了太多程序.
当我执行以下操作时:
for (int i = 0; i < 500; i++)
{
Process.Start("cmd","My Input: " + i);
System.Threading.Thread.Sleep(myInterval);
}
Run Code Online (Sandbox Code Playgroud)
该程序花费了太多时间来完成工作(如果我的程序在执行这些命令时挂起,我没有问题).
从我的观点来看,所有这一切发生的主要原因是我每次运行工具时都会打开另一个cmd窗口.我可以保持一个单独的cmd窗口打开并继续提供命令直到我完成了吗?有没有更有效的方法呢?
我有一些批处理脚本用于自动化应用程序构建过程,其中大多数涉及使用&&运算符将命令链接在一起.不可否认,我对Linux更有经验,但基于该经验some_command && other_command应该导致other_command运行iff some_command返回退出代码0.这个答案和这个答案似乎都同意这一点.但是,在Windows cmd.exe中似乎不是这种情况,所有脚本都会运行,而不管之前的错误代码如何.
我决定做一个简单的测试来说服自己我不会疯狂.考虑一下test.bat,它返回退出代码1:
@echo off
EXIT /B 1
Run Code Online (Sandbox Code Playgroud)
运行test.bat && echo This shouldn't print打印'这不应该打印'.但由于退出代码显然为1,echo因此不应调用.我已经测试过错误代码实际上是1使用%errorlevel%变量,它们按预期出现(在我运行脚本之前为0,之后为1).
在Linux上我尝试了同样的事情.这是test.sh:
#!/bin/bash
exit 1
Run Code Online (Sandbox Code Playgroud)
运行./test.sh && echo "This shouldn't print"没有输出,正是我所期望的.
这里发生了什么?
(注意:操作系统是Windows 7企业版)