2015-03-16 4 views
0

У меня есть следующая структура каталогов:Чтения содержимого относительного файла из пакетного сценария

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 

А потом мой компьютер начинает делать всякие странные вещи, получает медленно, замки, и принимает навсегда убить пакетный сценарий. Где я буду ошибаться?

+0

Я не в Windows-машине прямо сейчас, так что не могу проверить; но мне приходят две вещи. Вероятно, вы хотите «тип VERSION» (т.е. содержимое файла)? И если я правильно помню, используя параметр% i в следующем предложении do, предположительно используемом %% i. Завтра я посмотрю, если никто не сможет помочь раньше. – brainovergrow

+0

Если VERSION содержит одну строку, вы можете просто использовать 'set/p contents =" " eryksun

+0

Кроме того, использование '%% i in ('VERSION')' будет выполнять VERSION. Вместо этого вы хотите перебрать содержимое файла, используя '%% i in (VERSION)'. – eryksun

ответ

0

Проверено, работает

for /f "delims=" %%x in ('type version') do set "VERSION=%%x" 
echo %VERSION% 

вероятно другая идея от комментария может работать тоже, но я не проверял это.

Смежные вопросы