2012-05-07 3 views
3

Так у меня есть файл с несколькими линиями букв и цифр, как показано:Объединение нескольких строк из одного текстового файла в одну строку

a 
1 
h 
7 
G 
k 
3 
l 

END

Мне нужен тип кода, который объединяет их вместе и предпочтительно выводит его в переменную, как показано:

var=a1h7Gk2l 

Любая помощь будет принята с благодарностью.

ответ

4
@echo off 
setlocal enableDelayedExpansion 
set "var=" 
for /f "usebackq" %%A in ("test.txt") do set var=!var!%%A 
echo !var! 

Редактировать
Я предположил, "END" физически не существует в файле. Если он существует, вы можете добавить следующую строку после оператора FOR, чтобы удалить последние 3 символа.

set "!var!=!var:~0,-3!" 
+0

Я пробовал это и! Var! в конечном итоге был последним символом файла, а не всеми персонажами. – Bynari

+0

И да, END не является частью файла, кто-то его редактировал, чтобы он выглядел так, как есть. – Bynari

+0

@ Стартлеттс: Должно быть, я, наверное. Это создавало впечатление, как будто это было так, поэтому я включил слово с другими строками, переформатируя их. Прошу прощения за путаницу. –

1

Или, если вы просто хотите, чтобы поместить результат в файл (в отличие от хранения в памяти для какой-либо цели), вы могли бы сделать что-то вроде этого:

@ECHO OFF 
TYPE NUL >output.txt 
FOR /F %%L IN (input.txt) DO (
    IF NOT "%%L" == "END" (<NUL >>output.txt SET /P "=%%L") 
) 
ECHO.>>output.txt 

Последняя команда может быть ненужным, в зависимости от того, нужен ли вам символ конца строки, ну, конец линии.

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