Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/96: Рейтинг темы: голосов - 96, средняя оценка - 4.57
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
1

Объединение строк в одну строку

23.01.2013, 12:36. Просмотров 17244. Ответов 19
Метки нет (Все метки)

здравствуйте! как организовать в bat такое приведу пример
1.txt написано "ира" во втором 2.txt "панова" в третьем 3.txt "петровна" и результат 4.txt, как в бат соединить их чтобы получилось ира панова петровна в одну строчку спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 12:36
Ответы с готовыми решениями:

Объединение команд в одну строку; CMD & bash.exe
cd C:\tools\cygwin\bin\ & bash.exe & cd /cygdrive/c Первая команда переход в директорию к файлу...

Добавление символа к каждой строке файла, объединение получившихся строк в одну и последующее её разбиение
Здравствуйте! Имеется txt файл, в нем данные представлены в столбце в следующем виде: ...

Вывод на экран в одну строку двух строк из текстового файла со вставленной между ними заданной строкой
Здравствуйте. Нубский вопрос, но вменяемый ответ найти не получилось. Суть дела такова: есть...

Объединение двух удаленных офисов в одну сеть
Здравствуйте уважаемые форумчане. Нужна помощь в решении вопроса (ну или хотя бы натолкните на...

Объединение файлов с предварительным удалением строк
Задача: имеется очень много текстовых файлов (бд экспериментальных данных). Нужно объединить их в...

19
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 13:12 2
Bash
1
copy 1.txt+2.txt+3.txt 4.txt
Добавлено через 2 минуты
Если после первой строки есть перенос каретки, то:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion
set string=
for /f "usebackq tokens=*" %%a IN (1.txt) DO (
 set string=!string!%%a
)
for /f "usebackq tokens=*" %%a IN (2.txt) DO (
 set string=!string!%%a
)
for /f "usebackq tokens=*" %%a IN (3.txt) DO (
 set string=!string!%%a
)
echo.!string!>4.txt
Добавлено через 8 минут
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 14:07  [ТС] 3
я наверное задачу поставила не так
есть файл 1.txt в нем уже прописано "ира" как из файлов 2.txt-петровна 3.txt-панова что бы слова встали в оканцовке в 4.txt петровна ира панова
FraidZZ как вы писали
Цитата Сообщение от FraidZZ Посмотреть сообщение
1
copy 1.txt+2.txt+3.txt 4.txt
вариант не пойдет т.к так заменяется только первый столбец.
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 14:09 4
Тогда
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion
set string=
for /f "usebackq tokens=*" %%a IN (1.txt) DO (
 set string=!string! %%a
)
for /f "usebackq tokens=*" %%a IN (2.txt) DO (
 set string=!string! %%a
)
for /f "usebackq tokens=*" %%a IN (3.txt) DO (
 set string=!string! %%a
)
echo.!string!>>4.txt
1
23.01.2013, 14:09
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 14:37  [ТС] 5
FraidZZ спасибо вам но опять не то мне наверное уже домой пора с этой работой ни так стала выражаться попробую еще раз вот есть уже файл 1.txt в нем уже прописано ира и есть 2.txt там прописано панова петровна можно в разных файлах и как их соединить что бы в 1.txt получилось панова ира петровна
спасибо за понимание
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 14:46 6
В 13 строке замени
Bash
1
>>4.txt
На
Bash
1
>1.txt
Добавлено через 5 минут
Ну или
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
setlocal enabledelayedexpansion
set num=1
set string=
:againn
for /f "usebackq tokens=*" %%a IN (!num!.txt) DO (
 set string=!string! %%a
)
set /a num=!num!+1
if not exist !num!.txt (goto :exitt)
goto :againn
:exitt
echo.!string!>1.txt
echo OK
pause
exit /b
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 16:12  [ТС] 7
FraidZZ

Добавлено через 1 час 19 минут
еще вопрос вот команда
dir d:\100\*.txt /B> "d:\100\33.txt"
тут все названия *.txt копируеться в 33.txt а как сделать так что бы по отдельности каждый файл
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 17:35 8
Не понял
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 17:41  [ТС] 9
FraidZZ в 33.txt копируются все имена файлов с расширением txt а мне надо отдельно каждое имя файла в отдельный файл
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 17:44 10
Цитата Сообщение от lica Посмотреть сообщение
а мне надо отдельно каждое имя файла в отдельный файл
Как определить имя каждого нового файла?
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 17:48  [ТС] 11
1.txt 2.txt и т.д
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 17:52 12
Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
color 02
setlocal enabledelayedexpansion
set counter=1
for %%a IN (D:\100\*.txt) DO (
 echo.%%~dpnxa>!counter!.txt
 set /a counter=!counter!+1
)
echo OK
pause>nul
exit /b
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 18:13  [ТС] 13
FraidZZ спасибо но не совсем то
а как путь убрать при записи файлов нужно только имя файла записывать
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 18:19 14
Bash
1
2
3
4
5
6
7
8
9
10
11
@echo off
color 02
setlocal enabledelayedexpansion
set counter=1
for %%a IN (D:\100\*.txt) DO (
 echo.%%~nxa>!counter!.txt
 set /a counter=!counter!+1
)
echo OK
pause>nul
exit /b
1
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 18:37  [ТС] 15
А можно сделать в этом же коде что бы и папки видел и записывал.
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 19:22 16
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
color 02
setlocal enabledelayedexpansion
set counter=1
for /f "usebackq tokens=*" %%a IN (`dir "D:\100\*.txt" /B`) DO (
 echo.%%~a>!counter!.txt
 set /a counter=!counter!+1
)
for /f "usebackq tokens=*" %%a IN (`dir "D:\100\" /A:D /B`) DO (
 echo.%%~a>!counter!.txt
 set /a counter=!counter!+1
)
echo OK
pause>nul
exit /b
0
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
23.01.2013, 19:23  [ТС] 17
FraidZZ спасибо
подправлю код
@echo off
color 02
setlocal enabledelayedexpansion
set counter=1
for /f "usebackq tokens=*" %%a IN (`dir "D:\100\*" /B`) DO (
echo.%%~a>!counter!.txt
set /a counter=!counter!+1
)
echo OK
pause>nul
exit /b
и последний вопрос я наверное уже вас изматала
как записывать только имена файлов без расширение в этом коде желательно
0
Eva Rosalene
Ladybug
4057 / 1595 / 304
Регистрация: 06.01.2013
Сообщений: 4,190
Завершенные тесты: 2
23.01.2013, 19:24 18
Bash
1
%%~na
В шестой строчке вашего кода
1
lica
0 / 0 / 0
Регистрация: 18.09.2012
Сообщений: 48
28.01.2013, 19:16  [ТС] 19
Цитата Сообщение от FraidZZ Посмотреть сообщение
Bash
1
@echo off setlocal enabledelayedexpansion set string= for /f "usebackq tokens=*" %%a IN (1.txt) DO ( set string=!string! %%a ) for /f "usebackq tokens=*" %%a IN (2.txt) DO ( set string=!string! %%a ) for /f "usebackq tokens=*" %%a IN (3.txt) DO ( set string=!string! %%a ) echo.!string!>>4.txt
а как в этом коде сделать так что бы слово которое в 3.txt было во второй строчке в 4.txt

Добавлено через 1 минуту
вот
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion
set string=
for /f "usebackq tokens=*" %%a IN (1.txt) DO (
 set string=!string! %%a
)
for /f "usebackq tokens=*" %%a IN (2.txt) DO (
 set string=!string! %%a
)
for /f "usebackq tokens=*" %%a IN (3.txt) DO (
 set string=!string! %%a
)
echo.!string!>>4.txt
0
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,318
29.01.2013, 17:15 20
Цитата Сообщение от lica Посмотреть сообщение
что бы слово которое в 3.txt было во второй строчке в 4.txt
попробуйте так
Bash
1
2
3
4
5
6
7
8
@echo off
setlocal enabledelayedexpansion
set string=
for %%a in (1.txt 2.txt 3.txt) do (
for /f "usebackq tokens=*" %%b IN (%%a) do set string=!string!%%b
)
Echo !string!>4.txt
copy 4.txt+3.txt 4.txt >nul
0
29.01.2013, 17:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2013, 17:15

Вывод результатов поиска в одну строку
Здравствуйте! подскажите пожалуйста как вывести выполнение cmd команды в текстовый файл в одну...

Как получить в переменную одну строку из файла?
Как мне в переменную прочитать одну строку из файла

Text в XML, разбить одну строку на несколько
Приветствую, есть следующая проблема. Имеется xml файл, который возвращается со всем текстом в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru