在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中使用无操作命令的人都在寻找的。