21

在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 in box 中是否有任何虚拟命令(实际上什么都不做)?或者任何不错的黑客?

4

5 回答 5

26

rem命令什么也不做。

于 2011-08-25T14:17:03.337 回答
22

call没有任何参数的命令什么都不做,也没有附带的效果rem

例子:

echo Wait for it...
call
echo Nothing happened!
于 2014-07-24T22:10:55.653 回答
17

老话题,新答案。

cd.当我不想在 Windows 中做任何事情时(我经常这样做),我一直在使用,因为据我所知,“将目录更改为自身”根本没有副作用。

于 2018-03-06T19:34:59.483 回答
2

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

@擅长长度和无所作为。它在命令行末尾运行良好。

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

echo.甚至可以使用输入/输出重定向。该点不会被打印,回声状态不会改变。@echo.如果在命令批处理的开头使用,如果您不希望将虚拟命令本身回显到标准输出,则可能需要拼写;但这对echo命令来说并不特殊。

cd.trueLinux 中的对应物。Frame 挑战 OP,它实际上做了一些特定的事情:它将 ERRORLEVEL 设置为 0。它适用于重定向。

callfalseLinux 中的对应物。该命令认为它应该被告知要调用什么,但如果你没有提到任何,它会让你没有任何错误消息,但将 ERRORLEVEL 设置为正值。它适用于重定向。

(本摘要借鉴了三个现有答案,以及对另一个站点上另一个问题的答案。尝试使用老式的规范答案。)

于 2020-07-09T15:00:30.750 回答
1

break是任何想要在 Windows cmd 中使用 no-op 命令的人正在寻找的东西。自 Windows 98 以来(或者甚至在此之前),它没有做任何事情。

于 2022-01-15T17:26:16.230 回答