Can't figure out how to read file from nmake

2019-01-29 07:06发布

I am doing like that:


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

however filecontent variable does not seem to hold the contents of the file somefile.txt

标签: nmake
3条回答
再贱就再见
2楼-- · 2019-01-29 07:35

It is possible to read a file that is not a valid nmake file using !INCLUDE. For examle if we have a version file version that contains a single line of text we can do that:

//version file
1.2.4

//makefile
VERSION= \
!INCLUDE <version>

It is not working if the file contains more than one line.

查看更多
▲ chillily
3楼-- · 2019-01-29 07:44

Simply ensure somefile.txt is in acceptable nmake syntax, and then !include it. Thus:

c:>type somefile.txt
PASSWORD=secret
c:>type makefile
!INCLUDE somefile.txt
!MESSAGE Password is [$(PASSWORD)]
c:>nmake -nologo
Password is [secret]
查看更多
Ridiculous、
4楼-- · 2019-01-29 07:58

You could try something like this:

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

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

#--- END ---

I think a cmd/bat file run within nmake.exe cannot affect the environment of nmake. So you must use the password that you grabbed from the secret.txt within the temporary cmd file.

查看更多
登录 后发表回答