|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Добавление числа после точки с условием |
|
|
CMD/BAT - [решено] Добавление числа после точки с условием
|
Старожил Сообщения: 186 |
Добрый день. Помогите решить такую задачу. Есть файл 111.txt который лежит в C:\ в нем много строк текста. Нужно найти строки вида:
Сумм:30 Сумм:10.1 Сумм:50.03 С этих строках, там, где после точки идет одно число в конце нужно дописать 0, т.е. строка Сумм:10.1 должна стать Сумм:10.10, а там где нет точки добавить точку и два нуля, т.е. вместо Сумм:30 должно стать Сумм:30.00, строку с двумя цифрами после точки оставить без изменений. Файл с изменениями сохранить в 222.txt P.S. в принципе можно и не в CMD, а в WHS или PowerShell |
|
Отправлено: 15:01, 06-06-2013 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:43, 06-06-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Большое спасибо, только небольшое уточнение, нужно чтобы батник обрабатывал только строки с началом Сумм, т.е. например если в строке будет не Сумм:30 а Итог:30 то такую строку трогать не нужно, она должна в первозданном виде сохраниться в файл 222.txt
|
Отправлено: 16:07, 06-06-2013 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:31, 06-06-2013 | #4 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||
Отправлено: 16:41, 06-06-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:40, 06-06-2013 | #6 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать @ECHO OFF>222.txt SETLOCAL ENABLEDELAYEDEXPANSION FOR /F "tokens=*" %%I IN (111.txt) DO ( FOR /F "tokens=1,3 delims=:." %%J IN ("%%I") DO ( IF %%J==Сумм ( SET VAR1=%%K IF DEFINED VAR1 ( SET VAR2=!VAR1:~1! IF DEFINED VAR2 ( ECHO %%I>>222.txt ) ELSE ( ECHO %%I0>>222.txt )) ELSE ( ECHO %%I.00>>222.txt )) ELSE ( ECHO %%I>>222.txt ))) |
Отправлено: 17:48, 06-06-2013 | #7 |
Старожил Сообщения: 186
|
Профиль | Отправить PM | Цитировать Огромное спасибо все прекрасно работает.
Если можно еще одна задачка, файлы внутри такие же, но их много, хранятся в одной папке, нужно в этой папке отобрать все файлы где есть строки вида Сумм:30 Сумм:10.1 т.е. либо без точки, либо с одной цифрой после точки и скопировать в отдельный каталог |
Отправлено: 17:49, 06-06-2013 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Кодировка та же? Пробуйте:
|
Отправлено: 19:03, 06-06-2013 | #9 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Georgio, 07-06-2013 в 04:05. Отправлено: 22:18, 06-06-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Замена и добавление числа в txt файле | Tsok | Скриптовые языки администрирования Windows | 0 | 17-10-2011 17:22 | |
2008 R2 - [решено] После добавление компьютера в домен не запускаются программы | mr.Den | Windows Server 2008/2008 R2 | 6 | 21-07-2010 12:36 | |
Прочие БД - Добавление нулей слева от числа | Jonik-Mnimonik | Программирование и базы данных | 2 | 04-12-2008 09:51 | |
две точки 2000AP+(a1+a2) и карта 650+ хочу репитер из точки | Soft_warrior | Microsoft Windows NT/2000/2003 | 0 | 03-05-2006 21:53 | |
Оптимизация MFS после удаления большого числа файлов | Vlad Drakula | Microsoft Windows 2000/XP | 6 | 25-11-2004 11:46 |
|