Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
 
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
#1

Перемена местами текста в файле - CMD/BAT

19.06.2017, 13:41. Просмотров 429. Ответов 26
Метки нет (Все метки)

Привет всем,
Прошу помощи в решении задачи.

Вообщем есть RDS.txt файл в котором есть название песни и исполнитель - Пример :

Gypsy woman - Crystal waters

Нужно поменять их местами, чтоб исполнитель Был первым, а название после.
Разделителем является ПРОБЕЛ ТИРЕ ПРОБЕЛ + должен быть цикл каждую секунду, так как файл обновляется каждую секунду.

Благодарю за любую помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2017, 13:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перемена местами текста в файле (CMD/BAT):

Выполнение условия в bat файле по наличию текста в определённом файле - CMD/BAT
Задача: найти опеределённую строчку текста в файле и если она совпадает с искомой, то выполнить goto metka в bat файле, иначе goto metka2 ...

Множественная замена текста в файле - CMD/BAT
Добрый день! Нужно в выбранном файле сделать множественные замены текста (5 переменных со значениями) в разных строках. Нашел пример типа...

Замена текста в тхт файле - CMD/BAT
Добрый день! Помогите отредактировать файл. Есть текстовик c 100500 строками, нужно в каждой строке убрать весь текст между двумя символами...

Форматирование текста в текстовом файле - CMD/BAT
Здравствуйте, помогите, пожалуйста! Есть файл txt с данными в строках которые разделены табами: номердатаданные 1данные 2 номер...

Поиск и замена текста в файле - CMD/BAT
Имеется, допустим, файлик в кодировке 1251: tyutuyt бухгалтера лросодло клиентов апорпвоыпоп ываываыаыва Нужно как-то заменить...

Замена текста в файле реестра - CMD/BAT
Такой вопрос. Как сделать батник, который будет изменять путь реестра, в который требуется сделать импорт, в зависимости от разрядности...

26
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 14:02 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Windows Batch file
1
2
3
4
5
@echo off
:1
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do echo %%b - %%a >>1.txt
timeout /nobreak /t 1
goto 1
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 14:28  [ТС] #3
Благодарю, всё переворачивает ))) Но в файл 1.txt, он вставляет не одну строчку, а каждую секунду, ещё плюсует строчку.

Тоесть, за место одно Перевёрнутой строки, появляется ещё одна, и ещё.... Пример:

Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы
Дмитрий Маликов - Танцы

Итд, за место одной строки.

Благодярю !
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 14:45 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну я же не виноват,что
Цитата Сообщение от Sliceem Посмотреть сообщение
должен быть цикл каждую секунду, так как файл обновляется каждую секунду.
,что это не работает.
Он еще будет каждый раз начинать в файле RDS с 1 строки переварачивать,если у вас этот файл обновляется не одной строкой,а просто дописывает к существующей еще одну.ПОэтому хотелось бы выяснить,как происходит обновление файла RDS:одной строкой или каждый раз дописывается еще одна строка?
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 14:51  [ТС] #5
Он, как я понимаю обновляет файл, перезаписывая его.
Я через pscp скачиваю его к себе

ECHO OFF
:top
C:\Putty\pscp.exe -i "C:\pscp\1.ppk" ****@www.mix.lv:/home/audiolive/995/Rds.txt "C:\Rds.txt"

:timeout /1
goto top
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 14:55 #6
Он обновляется так:
бум бум
Или так:
бум бум
бам бам
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:00  [ТС] #7
Цитата Сообщение от ZoOoO Посмотреть сообщение
Он обновляется так:
бум бум
Или так:
бум бум
бам бам
Бум Бум
Бам Бам

Каждый раз новый файл
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 15:11 #8
Не понятно.Там две строчки где одна старая,а другая новая или одна ,но новая?

Вот код под одну новую
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
:1
timeout /t 1 
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do (
if "%%a%%b"=="!f!" (goto 1) else (set "f=%%a%%b" && echo %%b - %%a >>1.txt && goto 1)
)
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:14  [ТС] #9
Файл Rds.txt обновляется каждую секунду, так же и текст в нём, он НЕ добавляется, и оверрайтит его, и то что в нём
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 15:19 #10
)
Там одна строчка постоянно?Если всегда одна,то код выше попробуйте.
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 15:37  [ТС] #11
Цитата Сообщение от ZoOoO Посмотреть сообщение
)
Там одна строчка постоянно?Если всегда одна,то код выше попробуйте.
Всё почти хорошо, Но, если меняется текст, то он его добавляет на следующую строчку, то есть, идентичный текст он игнорирует, а уникальный оставляет, перенося его на другую строку.

Копит уникальный текст
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 16:28 #12
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Файл RDS всегда имеет одну строку.
Файл RDS обновляется и снова имеет одну строку,но новую
В файл 1.txt записывается к старым перевернутым строкам новая перевернутая строка.
Это код который выше

Этот код делает следующее
Новый файл RDS имеет много строк
При обновлении файл RDS имеет старые строки и одну новую.
В файл 1.txt записывается к старым перевернутым строкам новая перевернутая строка.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enabledelayedexpansion
set n=1
:1
timeout /t 1 
for /f "delims=" %%a in ('find /v /n "" RDS.txt') do (
for /f "delims=" %%b in ('echo %%a^|findstr /l /c:"[!n!]"') do (
set "s=%%a"
set "s=!s:*]=!"
if defined s (echo !s!>$ && for /f "delims=- tokens=1,2" %%c in ($) do echo %%d - %%c >>1.txt && set /a n+=1 && goto 1)
)
)
goto 1
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 16:43  [ТС] #13
Мне то и не надо новые.
Я писал в самом первом вопросе.
Просто создать файл, залить в него то что в файле RDS, перевернуть и всё.
Всё в одну строку, бульше других строк не надо.

И так через каждую секунду.

То же самое что в файле РДС но перевёрнуто. В Рдс файле всегда одна строка.


Может что то не так объясняю.
Есть Радио-программа, которая выкладывает название песни и исполнителя в файл Rds.txt, но перевёрнуто, то есть сперва название а потом исполнитель. После я этот файл Заливаю на ФТП.

Потом еду в другой город, и там, где радио-оборудование, скачиваю этот Rds.txt.
И тут то мне нужна помощь, просто перевернуть текст в файле.

Софт который читает файл Rds выкладывает это всё в эфир, и если там будет много текста то он всё в эфир и выплюнет.
А мне надо только то что показывает плеер, а не дополнительные строки, то есть мне нужен ЛАЙВ с программы, но перевёрнутый
0
ZoOoO
152 / 152 / 44
Регистрация: 09.02.2016
Сообщений: 779
19.06.2017, 16:51 #14
Windows Batch file
1
2
3
4
5
6
7
@echo off
setlocal enabledelayedexpansion
:1
timeout /t 1 
for /f "delims=- tokens=1,2" %%a in (RDS.txt) do (
if "%%a%%b"=="!f!" (goto 1) else (set "f=%%a%%b" && echo %%b - %%a >1.txt && goto 1)
)
Оно?
1
Sliceem
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 14
19.06.2017, 17:03  [ТС] #15
Оно !!
Я тебе крайне признателен. Всё как нужно.

А можно сделать, чтоб, если в Rds файле пустота, то и в тот файл передовал пустоту, или за место пустоты подставлял нужный текст.
0
19.06.2017, 17:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2017, 17:03
Привет! Вот еще темы с ответами:

BAT поиск текста в файле с условием - CMD/BAT
Помогите с батничком Необходимо чтобы батник проверял в папке все файлы которые там есть. Файлы по сути текстовые, но лежат в формате...

Изменить кодировку текста в текстовом файле - CMD/BAT
Доброго времени суток! В общем есть стандартный txt файл. Нужно из командной строки изменить кодировку текста в нём на unicode (т.е....

Поиск и замена текста в REG-файле - CMD/BAT
Здравствуйте, помогите пожалуйста написать скрипт имеется файл C:\dir\1.reg нужно в нем найти текст из 2-й строки файла C:\dir\2.txt и...

Перемешать строки текста в файле с условием - CMD/BAT
Приветствую! Задача: В текстовом файле случайно перемешать строки. НО перемешать нужно так, что бы не было двух строк подряд с...


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

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

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