正如标题所说,我需要在 Windows 10 中使用 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企业版)
我有一个小的 powershell 脚本,它允许我快速为自己设置警报。它基本上只是等待指定的分钟数然后调用
味精 * 警报!
这很有效 - 弹出一个消息框。唯一的问题是它会在一段时间后消失 - 所以如果我不在办公桌前,我会错过消息框。
根据此处找到的文档,这是我未指定时间值时的行为。
/time: seconds :指定您发送的消息在用户屏幕上显示的时间。一旦达到时间限制,消息就会消失。如果未设置时间限制,则该消息将保留在用户的屏幕上,直到用户看到该消息并单击“确定”。
然而事实并非如此,它确实消失了。现在,我必须指定一个任意高的数字才能保留。
msg * /time:999999 alarm!
Run Code Online (Sandbox Code Playgroud) 我有一个主批处理文件,它调用多个批处理文件。我希望能够同时执行所有这些批处理文件。完成所有操作后,我需要在主匹配文件中进行进一步的处理。
当我使用“开始”调用多个批处理文件时,能够同时启动所有批处理文件,但是我无法跟踪它们。(主批处理文件认为它们的过程在执行其他批处理文件的那一刻就完成了)。
当我使用“呼叫”时,能够监视批处理文件的过程,但是它将按顺序而不是同时启动批处理文件。
有没有解决的办法?在此PC上具有有限的权限,并尝试仅使用批处理来完成此操作。
主批处理文件
call first.bat
call second.bat
call third.bat
:: echo only after all batch process done
echo done!
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud)
蝙蝠
timeout /t 10
Run Code Online (Sandbox Code Playgroud)