windows cmd中的哑命令



在linux中我们有一个makefile:

$(foreach A,a b,echo $(A) &&) true

它工作并返回

a
b

现在我们想把它移植到Windows上。我在Windows上发现的最短的什么都不做的命令:

if 0==1 0

所以makefile的例子看起来像

$(foreach A,a b,echo $(A) &&) if 0==1 0

是否有任何虚拟命令在Windows的盒子(这真的没有什么)?或者有什么好点子?

rem命令不做任何操作

不带参数的call命令没有任何作用,也没有rem命令的附带效果。

的例子:

echo Wait for it...
call
echo Nothing happened!

旧帖,新答

我一直在使用cd.时,我想在windows中什么都不做(我经常这样做),因为"更改目录本身"没有副作用,就我所见。

对于哪个虚拟命令最短没有单一的答案,因为虚拟命令有几个不同的用途(上下文),这可能导致不同的选择。从最好到最差。

@在长度和不做任何事情方面表现出色。在命令行末尾工作得很好。

rem很好,在command.com时代,它曾经是一个命令,所以它甚至可以使用输入/输出重定向。今天(在cmd.exe中)它开始一个注释,所以它只能在命令行的末尾使用;任何重定向最终也会被注释掉。

echo.甚至在输入/输出重定向下也能工作。该点不被打印,回声状态不被改变。如果在命令批处理的开始使用,如果您不希望虚拟命令本身回显到标准输出,则可能需要拼写为@echo.;但这不是echo命令所特有的。

cd.对应Linux中的true。在挑战OP时,它实际上做了一些特定的事情:它将ERRORLEVEL设置为0。它与重定向一起工作。

call对应Linux中的false。该命令认为它应该被告知调用什么,但是如果您没有提到,它会让您在没有任何错误消息的情况下执行,但会将ERRORLEVEL设置为正值。它与重定向一起工作。

(这个摘要引用了三个现有的答案,加上对另一个网站上另一个问题的回答。

break是任何想要在Windows cmd中使用无操作命令的人都在寻找的。

相关内容

  • 没有找到相关文章

最新更新