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
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
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]
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.
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.