2

我正在做这样的事情:

all: 
    @SET /p filecontent= < somefile.txt
    @echo %filecontent%

然而,该filecontent变量似乎并不包含文件的内容somefile.txt

4

3 回答 3

2

可以使用!INCLUDE. 例如,如果我们有一个version包含单行文本的版本文件,我们可以这样做:

//version file
1.2.4

//makefile
VERSION= \
!INCLUDE <version>

如果文件包含多于一行,则它不起作用。

于 2015-03-03T16:28:34.920 回答
1

只需确保somefile.txt是可接受的 nmake 语法,然后!include它。因此:

c:>type somefile.txt
PASSWORD=secret
c:>type makefile
!INCLUDE somefile.txt
!MESSAGE Password is [$(PASSWORD)]
c:>nmake -nologo
Password is [secret]
于 2011-01-18T15:59:16.270 回答
0

你可以尝试这样的事情:

# ---- vitaly.mak ----

target1:
# create and invoke a temporary cmd file
@<<mygetpassword.cmd
 @echo off
 setlocal
 @SET /p filecontent= < secret.txt
 @echo %filecontent%
 endlocal
<<

#--- END ---

我认为在 nmake.exe 中运行的 cmd/bat 文件不会影响 nmake 的环境。因此,您必须使用从临时 cmd 文件中的 secret.txt 中获取的密码。

于 2010-11-07T17:19:31.873 回答