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

Добавление символа к каждой строке файла, объединение получившихся строк в одну и последующее её разбиение

30.10.2015, 14:15. Просмотров 1325. Ответов 25
Метки нет (Все метки)

Здравствуйте!

Имеется txt файл, в нем данные представлены в столбце в следующем виде:

50:19:0010101
50:19:0010102
50:19:0010103
50:20:0010331

Необходимо добавить после каждого текста строки символ ;
Что бы получилось:
50:19:0010101;
50:19:0010102;
50:19:0010103;
50:20:0010331;

Потом объединить в одну строку 50:19:0010101;50:19:0010102;50:19:0010103;50:20:0010331;

Затем разбить получившуюся строку на строки с количеством символов 700.

Возможно ли это сделать при помощи батника?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 14:15
Ответы с готовыми решениями:

Добавление определённого символа в конец каждой, начиная со второй, строки файла
Всем привет. Есть файлик допустим он TXT. В нем много строк. Надо в каждую...

Объединение строк в одну строку
здравствуйте! как организовать в bat такое приведу пример 1.txt написано "ира"...

Добавление к каждой строке текстового файла тега "<br>"
Требуется простейшим образом преобразовать текстовые файлы в .htm....

Добавление определённого символа в конец и начало каждой строки
Всем привет. Есть файлик допустим он TXT. В нем много строк. Надо в каждую...

Объединение строк из файла в одну
Снова здравствуйте, уважаемые форумчане... Имеется вопрос - Как с текстового...

25
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 15:18 2
Windows Batch file
1
2
3
4
5
@echo off
  if "%1" equ "" goto:eof
  powershell /nop /ex bypass /com ^
  "&{$$=(gc '%1') -join ';';$i=0;do{-join $$[$i..($i+=699)];$i}while($i -le $$.Length)}"
exit /b
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 15:23  [ТС] 3
Файл должен лежать в одном месте с батником? По чему то ничего не происходит...
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 15:25  [ТС] 4
Вот пример
0
Вложения
Тип файла: txt razd.txt (10.1 Кб, 14 просмотров)
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 15:42 5
Цитата Сообщение от Виктор83
По чему то ничего не происходит...
Не почему-то, а по вполне понятной причине - бату имя файла передатся в качестве параметра, например:
Код
mybat.cmd razd.txt
Ну или полный путь до файла. Если без параметров:
Windows Batch file
1
2
3
4
5
@echo off
  if "%1" equ "" goto:eof
  powershell /nop /ex bypass /com ^
  "&{$$=(gc .\razd.txt) -join ';';$i=0;do{-join $$[$i..($i+=699)];$i}while($i -le $$.Length)}"
exit /b
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 15:49  [ТС] 6
Создал бат файл, но ничего не происходит....

Windows Batch file
1
2
3
4
5
6
@echo off
mybat.cmd razd.txt
  if "%1" equ "" goto:eof
  powershell /nop /ex bypass /com ^
  "&{$$=(gc .\razd.txt) -join ';';$i=0;do{-join $$[$i..($i+=699)];$i}while($i -le $$.Length)}"
exit /b
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 15:53 7
Windows Batch file
1
2
3
4
@echo off
  powershell /nop /ex bypass /com ^
  "&{$$=(gc .\razd.txt) -join ';';$i=0;do{-join $$[$i..($i+=699)];$i}while($i -le $$.Length)}"
exit /b
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 15:56  [ТС] 8
В папке по адресу C:\000\
лежат файлы razd.txt и mybat.bat
Запускаю mybat.bat и должна происходить обработка файла razd.txt
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 15:58 9
Теперь все должно заработать, - упустил из виду, свою же ошибку. Просто копируете, сохраняете без имзенений в бат, кладете рядом razd.txt и запускаете бат.
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 16:02  [ТС] 10
Не работает

В ссылке все как и было.
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 16:16 11
Какая ОС?
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 16:18  [ТС] 12
widows xp sp3
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 16:24 13
Виктор83, понятно. Погодите немного.
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 16:26  [ТС] 14
Только что проверил на win 7 - происходит обработка (вижу мои данные в окне обработки), но файл не изменяется
0
Garry Galler
1824 / 1385 / 528
Регистрация: 28.10.2013
Сообщений: 3,533
30.10.2015, 16:32 15
Виктор83,
но файл не изменяется
Он и не должен. Вы же этого не написали - скрипт этого и не делает.
0
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 16:40  [ТС] 16
Погодите.
Имеется txt файл, в нем данные представлены в столбце в следующем виде:

Добавлено через 5 минут
Подскажите, как прописать, что бы создавался новый файл txt с произведенными изменениями?
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,761
30.10.2015, 17:04 17
Лучший ответ Сообщение было отмечено Виктор83 как решение

Решение

Для Win XP:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@set @j=0 /*
  @echo off
    set @j=
    setlocal
      cscript /nologo /e:jscript "%~f0"
    endlocal
  exit /b
*/
 
(function() {
  var s, a = [], str;
  
  try {
    with (new ActiveXObject('Scripting.FileSystemObject')) {
      s = OpenTextFile('razd.txt', 1);
      while (!s.atEndOfStream) {
        a.push(s.ReadLine() + ';')
      }
      s.Close();
      
      str = a.join('');
      s = CreateTextFile('out.txt', true);
      for (var i = 1; i < str.length; i++) {
        s.Write(str.substring(i-=1, i+=700) + '\r\n');
      }
      s.Close();
    }
  }
  catch (e) { WScript.echo(e); }
}());
Кладете razd.txt рядом с батом, после запуска в той же папке, что и бат появится файл out.txt
1
Виктор83
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 140
30.10.2015, 17:07  [ТС] 18
greg zakharov, здорово! Спасибо огромное, все работает как надо!
0
vavun
30.10.2015, 17:07
  #19

Не по теме:

Не PS так JS :D

0
ComSpec
3409 / 1953 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
30.10.2015, 20:54 20
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

"Чистый" Batch рано хороните, господа!



Код пакетного файла:


Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off& setlocal enabledelayedexpansion
 
<"razd.txt">"out.txt" (
for /f eol^= %%i in ('cmd/u/c "for /f delims^= %%i in ('more') do @echo %%i;"^| more') do @(
 set/a n+=1& if !n! lss 700 (<nul set/p=%%i) else (echo %%i& set n=)
)
)
 
endlocal& exit/b

.
3
30.10.2015, 20:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2015, 20:54

Добавление в строку экранирующего символа '\' перед каждой кавычкой в строке
Помогите пожалуйста!) Нужно написать класс StringFormatter с методом string...

Найти в матрице максимум по каждой строке, а затем минимум из получившихся чисел
Вводится прямоугольный массив. Найти в нем максимум по каждой строке, а затем...

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


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

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

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