Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Заменить строки в текстовом файле

Ответить
Настройки темы
CMD/BAT - [решено] Заменить строки в текстовом файле
aos aos вне форума

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: aos
Дата: 10-02-2012
Доброго времени суток! Есть такая задача: существует некий текстовый документ (card.txt) со следующим содержанием (кол-во строк и содержание меняется)
1045;196,66
1046;301,60
1047;344,45
1048;212,70
1050;-31,40
1052;212,40
требуется, сначала заменить запятые на точки, потом точку с запятой на запятые. После чего проверить, если после запятой значение положительное то вместо него поставить ноль, если отрицательное то просто убрать минус перед значением.

Реально ли такое сделать?

Отправлено: 13:16, 10-02-2012

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@Echo On
Set In=card.txt
Set InTmp=%In%.Tmp

SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

Move /Y "%In%" "%InTmp%" >Nul

If %ErrorLevel% EQU 0 (
   FOR /F "usebackq tokens=1,2,3 delims=;," %%a IN ("%InTmp%") DO (
      If %%b GEQ 0 Echo %%a,0.%%c>>"%In%"
      If %%b LSS 0 Set /A bb=-%%b & Echo %%a,!bb!.%%c>>"%In%"
   )
   Del "%InTmp%" >Nul
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:02, 10-02-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

aos aos вне форума Автор темы

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Почти так, он меняет положительное значение на ноль но проблемма в том, что это суммы и они с копейками, то есть
Было
1045;196,66
1046;301,60
1047;344,45
1048;212,70
1050;-31,40
1052;212,40

После выполнения скрипта
1046,0.60
1047,0.45
1048,0.70
1050,31.40
1052,0.40

Как хотелось бы

1046,0
1047,0
1048,0
1050,31.40
1052,0

Заранее огромное спасибо!

Отправлено: 14:24, 10-02-2012 | #3

aos aos вне форума Автор темы

Новый участник


Сообщения: 15
Благодарности: 0

Профиль | Отправить PM | Цитировать


Все разобрался, огромное спасибо!!!

Отправлено: 14:45, 10-02-2012 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Заменить строки в текстовом файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Заменить строки в бат файле Gala.qwer Скриптовые языки администрирования Windows 1 11-08-2011 19:16
[решено] Найти и заменить в текстовом файле. Как? Pozia AutoIt 15 11-03-2010 19:12
подсчёт слов в текстовом файле bakatum Хочу все знать 4 22-01-2010 21:10
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? Pozia AutoIt 23 14-05-2009 21:41
[решено] Работа из командной строки | Убрать все пробелы в текстовом файле Greyman Хочу все знать 11 17-06-2007 22:44




 
Переход