使用$(shell)时NMake返回错误

chr*_*pec 4 windows shell powershell nmake build

我是nmake的新手,需要修改构建脚本。我想执行命令并将结果捕获到变量中,然后将在整个脚本中使用该变量。但是,当尝试使用shell命令时,我收到以下错误消息:

makefile(4) : fatal error U1000: syntax error : ')' missing in macro invocation
Stop.
Run Code Online (Sandbox Code Playgroud)

我整理了一行脚本来测试shell命令。

生成文件:

CMDRESULT = $(shell hostname)

all:
    echo $(CMDRESULT)
Run Code Online (Sandbox Code Playgroud)

这是使用的nmake的版本:

>nmake /?

Microsoft (R) Program Maintenance Utility Version 11.00.60610.1
Copyright (C) Microsoft Corporation.  All rights reserved.
Run Code Online (Sandbox Code Playgroud)

nmake是否支持shell命令?nmake中是否还有另一个选项可以执行命令并捕获结果?

Taa*_*ots 5

如果输出包含一行文本,则可以使用temporay文件将另一个程序输出读取到nmake变量中。也可以使用外部脚本来修改多行输出并使该解决方案起作用。读取一行输出到nmake变量的示例:

!IF [hostname>hostname.tmp] == 0
H_NAME = \
!INCLUDE hostname.tmp
!IF [del hostname.tmp] == 0
!ENDIF
!ENDIF
Run Code Online (Sandbox Code Playgroud)

[for execution]用于执行一些命令并比较return code程序。它是在预处理期间完成的。在这里描述的黑客之后,“无法弄清楚如何从nmake读取文件”用于从临时文件读取一行。