我想在Windows CMD控制台中运行两个命令。

在Linux中我会这样做

touch thisfile ; ls -lstrh

在Windows上是怎么做的呢?


当前回答

在windows中,我使用了上述所有解决方案&,&&,但都不起作用 ';'符号终于为我工作了

npm install; npm start

其他回答

So, I was trying to enable the specific task of running RegAsm (register assembly) from a context menu. The issue I had was that the result would flash up and go away before I could read it. So I tried piping to Pause, which does not work when the command fails (as mentioned here Pause command not working in .bat script and here Batch file command PAUSE does not work). So I tried cmd /k but that leaves the window open for more commands (I just want to read the result). So I added a pause followed by exit to the chain, resulting in the following:

cmd /k C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe "%1" /codebase \"%1\" &暂停&退出

这就像一个咒语——RegAsm在文件上运行并显示其结果,然后显示“按任意键继续…”提示符,然后当按下一个键时命令提示符窗口关闭。

P.S.对于其他可能感兴趣的人,你可以使用以下.reg文件条目来添加一个dllfile关联到.dll文件,然后再添加一个RegAsm命令扩展名(注意转义的引号和反斜杠):

[HKEY_CLASSES_ROOT\.dll]
"Content Type"="application/x-msdownload"
@="dllfile"

[HKEY_CLASSES_ROOT\dllfile]
@="Application Extension"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm]
@="Register Assembly"

[HKEY_CLASSES_ROOT\dllfile\Shell\RegAsm\command]
@="cmd /k C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\regasm.exe \"%1\" /codebase \"%1\" & pause & exit"

现在我有了一个很好的右击菜单来注册程序集。

再举一个例子:例如,当我们使用gulp构建系统时,而不是

Gulp -默认>构建

Gulp构建-构建构建文件夹

Gulp watch -开始文件监视

Gulp dist- build dist-folder

我们可以用一行代码来实现:

cd c:\xampp\htdocs\project & gulp & gulp watch

不,cd / && tree && echo %time%。回显的时间是第一个命令执行时的时间。

管道有一些问题,但这并不重要,只要人们知道它是如何工作的。

我尝试在同一个窗口中有两个ping,它是在同一行上的串行命令。完成第一个命令后,执行第二个命令。

解决方案是在Windows 7命令提示符中结合start /b。

像往常一样启动,不带/b,并在单独的窗口中启动。

在同一行中用于启动的命令是:

start /b command1 parameters & command2 parameters

无论如何,如果您希望解析输出,我不建议使用这种方法。 我注意到输出在命令的输出之间被打乱了。

当在同一行上运行多个命令时,可以使用许多处理符号,在某些情况下可能导致处理重定向,在其他情况下可能改变输出,或者导致失败。一个重要的例子是将操作变量的命令放在同一行。

@echo off
setlocal enabledelayedexpansion
set count=0
set "count=1" & echo %count% !count!

0 1

正如您在上面的例子中看到的,当使用变量的命令被放在同一行时,您必须使用延迟展开来更新变量值。如果你的变量被索引了,使用CALL命令和%%修饰符来更新它在同一行的值:

set "i=5" & set "arg!i!=MyFile!i!" & call echo path!i!=%temp%\%%arg!i!%%

path5=C:\Users\UserName\AppData\Local\Temp\MyFile5