У меня есть следующая структура каталогов:Чтения содержимого относительного файла из пакетного сценария
C:\Users\myuser\tmp\version\
version.bat
VERSION
Моего version.bat
файл:
set contents=
for /f "delims=" %%i in ('VERSION') do set contents=%content% %%i
echo contents
Что я пытаюсь сделать это, когда пользователь запускает version.bat
он считывает содержимое файла VERSION
в переменную с именем contents
, а затем эхо-содержимое этого содержимого составляет STDOUT
.
Когда я запускаю это я вижу следующий вывод:
C:\Users\myuser\tmp\version>set contents=
C:\Users\myuser\tmp\version>for /F "delims=" %i in ('VERSION') do set content= %i
А потом мой компьютер начинает делать всякие странные вещи, получает медленно, замки, и принимает навсегда убить пакетный сценарий. Где я буду ошибаться?
Я не в Windows-машине прямо сейчас, так что не могу проверить; но мне приходят две вещи. Вероятно, вы хотите «тип VERSION» (т.е. содержимое файла)? И если я правильно помню, используя параметр% i в следующем предложении do, предположительно используемом %% i. Завтра я посмотрю, если никто не сможет помочь раньше. – brainovergrow
Если VERSION содержит одну строку, вы можете просто использовать 'set/p contents =" "
eryksun
Кроме того, использование '%% i in ('VERSION')' будет выполнять VERSION. Вместо этого вы хотите перебрать содержимое файла, используя '%% i in (VERSION)'. – eryksun