Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
1

Работа со строками

25.11.2015, 12:45. Просмотров 1156. Ответов 8
Метки нет (Все метки)

Добрый день!
Помогите пожалуйста необходимо сделать обработку команды для проведения порядкового номера.
Есть 2 файла, которые нужны для обработки (См. вложенные файлы):

Необходимо при запуске str.cmd с параметром порядкового номера (str.cmd 1.20.100.10.1). Эта версия проставлялась в файлах 1.txt и 2.txt.

В итоге должно получиться

1.txt (только последняя цифра. Тут не простановка, а замена):


строка

строка
строка 2
строка4
строка
строка
1001
};

Соответственно, если проставляем str.cmd 1.20.100.10.11,
то 9 строка будет 1011


2.txt (через строку):
Proverka 1.20.100.10

Proverka 1.20.100.10.1

Соответственно следующие добавление получится:

Proverka 1.20.100.10

Proverka 1.20.100.10.1

Proverka 1.20.100.10.11
0
Вложения
Тип файла: txt 1.txt (74 байт, 2 просмотров)
Тип файла: txt 2.txt (37 байт, 2 просмотров)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2015, 12:45
Ответы с готовыми решениями:

работа со строками
Приветствую уважаемые форумчане. Я к Вам с небольшой задачкой, которой...

Работа со строками в файле
имеется файл xml с содержимым: <?xml version="1.0" encoding="windows-1251"...

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых...

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

8
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
25.11.2015, 14:00  [ТС] 2
Задача с 2.txt решена

Windows Batch file
1
2
3
4
5
6
7
8
9
10
for /f "tokens=1,2,3,4,5,6,7,* delims=." %%a in ( "%1" ) do (
set  v=%%a
set  m=%%b
set  ab=%%c
set  bb=%%d
set  bc=%%e
)
 
echo Version %v%.%m%.%ab%.%bb%.%bc% >> 2.txt
echo. >> 2.txt
Осталась задача с 1.txt
0
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
25.11.2015, 14:42  [ТС] 3
Помогите пожалуйста, есть файл в нем 11 строк
Необходимо при запуске командника km.cmd заменить 9-ую строку.
Сожержание файла:

строка1
строка2
строка3
строка4
строка5
строка6
строка7
строка8
2000
строка10
строка12

Пример1. Командник будет запускаться с обязательными параметрами km.cmd 1.10.100.20.1

Т.е. последние два номера должны проставиться в строку 9 с заменой

Итог. должен быть:

строка1
строка2
строка3
строка4
строка5
строка6
строка7
строка8
2001
строка10
строка12

Пример2. Командник будет запускаться с обязательными параметрами km.cmd 1.10.100.20.33

Итог. должен быть:

строка1
строка2
строка3
строка4
строка5
строка6
строка7
строка8
2033
строка10
строка12
0
greg zakharov
25.11.2015, 14:48
  #4

Не по теме:

Цитата Сообщение от Olich666
Командник будет запускаться с обязательными параметрами
С точки зрения интепретатора это один параметр. И потом, зачем дублируете темы?

0
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
25.11.2015, 14:56  [ТС] 5
Ок, спасибо за поправку. Запуск с параметром
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,759
25.11.2015, 15:17 6
Лучший ответ Сообщение было отмечено Olich666 как решение

Решение

Да не за что.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
  setlocal
    set "i=0"
    for %%i in (%*) do set /a "i+=1"
    if "%i%" neq "1" echo:Index is out of range.&goto:eof
    
    for /f "tokens=4,5 delims=." %%i in ("%1") do (
      if %%j lss 10 (set "str=%%i0%%j") else (set "str=%%i%%j")
    )
    :: foo - обрабатываемый файл
    chcp 1251>nul
    >"%tmp%\foo" (for /f "tokens=1,* delims=][" %%i in (
      'find /v /n "" ^< foo'
    ) do (
      if "%%i" equ "9" (echo:%str%) else (echo:%%j)
    ))
    chcp 866>nul
    
    move /y "%tmp%\foo" foo>nul
  endlocal
exit /b
1
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
25.11.2015, 15:43  [ТС] 7
А, если, например, файл 1.txt находится по пути t\tmp\moon\tent\1.txt
где указать этот путь?
0
greg zakharov
Покинул форум
2211 / 880 / 248
Регистрация: 07.05.2015
Сообщений: 1,759
25.11.2015, 15:55 8
Написано же, что foo - обрабатываемый файл. Вот вместо foo и пишите какой файл обрабатывать, с путем, если бат запускается не из той же папки, где лежит список, без оного ежели наоборот.
0
Olich666
2 / 2 / 0
Регистрация: 28.01.2014
Сообщений: 174
25.11.2015, 16:41  [ТС] 9
Вот при указании пути ругается, что не удается найти файл, хотя по этому пути файл есть

Добавлено через 28 минут
все, сообразил. Спасибо большое

Добавлено через 3 минуты
Хотелось бы в дополнении еще расшифровать некоторые моменты (если вас не затруднит)
Что означают строки:

Windows Batch file
echo:Index is out of range.&goto:eof
и


Windows Batch file
12
13
    >"%tmp%\foo" (for /f "tokens=1,* delims=][" %%i in (
      'find /v /n "" ^< foo'
Добавлено через 1 минуту
И для чего менялась кодировка?

Windows Batch file
11
    chcp 1251>nul
Windows Batch file
17
    chcp 866>nul
0
25.11.2015, 16:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2015, 16:41

Работа со строками
Подскажите запускаю прогу, а она не хочет запускать что ето можит бить ???...

Работа со строками
В файле 1.PAS дана строка символов. Записать в файл 2.PAS количество вхождений...

Работа со строками
Привет всем. Ребята нужна помощь в написание программ, а то сам не как не могу...


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

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

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