Проверьте существование файла с помощью nmake и удалите его
Я использую версию NMAKE для Windows. Я хотел бы проверить наличие файла в файле make. Если он существует, мне нужно удалить его. Вот мой код:
!IF EXIST ("C:\ABC.XML")
@del ABC.XML
!ELSE
@echo "FILE DOESN'T EXIST
!ENDIF
Приведенный выше код не работает. Я не мог понять это проблема. Пожалуйста помоги.
1 ответ
Ваш код не работает, потому что !IF
, !ELSE
а также !ENDIF
являются директивами предварительной обработки, и результат предварительной обработки должен создать допустимый make-файл. Команды разрешены только как часть того, что Microsoft называет блоком описания, который требуется начинать со строки зависимости с одной или несколькими целями и нулем или несколькими иждивенцами.
Вы можете обойти это, выполнив ваши команды на этапе предварительной обработки, включив их в директиву предварительной обработки, заключенную в квадратные скобки ([]). Что-то вроде этого:
!IF EXIST(C:\ABC.XML)
! IF [del C:\ABC.XML]
! ENDIF
!ELSEIF [echo FILE DOESN'T EXIST]
!ENDIF
Второй !IF
и !ELSEIF
директивы используются для предоставления контекста для команд, поэтому они выполняются на этапе предварительной обработки.
Однако я думаю, что вам, вероятно, лучше del
команда к блоку описания, где это действительно необходимо. Например, если файл ABC.XML
Необходимо удалить, прежде чем его можно будет восстановить, используйте что-то вроде этого:
ABC.XML: ABC.CSV
-rem The csv2xml translator requires that the XML file not already exist
-@del ABC.XML 2> NUL
csv2xml ABC.CSV ABC.XML