|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите написать батник для замещения-изменения содержимого txt файлов |
|
CMD/BAT - [решено] Помогите написать батник для замещения-изменения содержимого txt файлов
|
Новый участник Сообщения: 10 |
Профиль | Отправить PM | Цитировать Привет!
Я не умею писать батники, поэтому прошу вас помочь. Нужен батник который будет все файлы txt считывать, и изменять в них значения. Например: в папке лежать 4 файла с названиями типа "Pays_000000003_2018_08_62018_08_6.txt" содержание в них такого типа: Date_id|Branch_id|Pay_type|Account_id|Serv_id|Serv_name|Sum_pay|Last_count 06/08/2018|APLT|0|000077183|5|Холодная вода и кан-ция|2*441,00|| Нужно чтобы батник сам заменял значения "APLT" на "1201";"awnb" на "2527"; "ibhb"на"2526"; "kasp" на "4000"; "kpst" на "4001";"|104|" на "|5|"; '00000004|" на "|5|", и так во всех файлах находящихся в папке. |
|
Отправлено: 08:01, 08-08-2018 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Я просто затупил при ответе.
Где в коде изменить чтобы указать путь к папке, не перетаскивая ее? Цитата Iska:
|
|
Отправлено: 11:48, 10-08-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата loficous:
Создайте пакетный файл, в котором напишите: Например, скрипт именуется Мой скрипт.vbs и находится по пути C:\Мои проекты\0180, обработать нужно каталог C:\Мои проекты\0180\0005. Тогда вторая строка будет выглядеть как: |
|
Отправлено: 11:57, 10-08-2018 | #12 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Благодарю Вас за помощь.
Цитата Iska:
|
|
Отправлено: 13:32, 10-08-2018 | #13 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Вот батник с привлечением js
@set @E=1; /* @Echo Off cls Set "FileIn=Z:\Soft_In\Pays_*.txt" rem 1 2 3 4 5 6 7 FOR %%f IN ("%FileIn%") DO Call Cscript //NoLogo /E:jscript "%~dpnx0" "%%f" "\|APLT\|" "|1201|" "\|awnb\|" "|2527|" "\|ibhb\|" "|2526|" "\|kasp\|" "|4000|" "\|kpst\|" "|4001|" "\|104\|" "|5|" "\|00000004\|" "|5|" pause GoTo :Eof */ var oArg = WScript.Arguments; var nArg = oArg.Count(); var nRep = Math.floor(nArg/2); if (nArg <= 3 || nRep == nArg/2) { WScript.Echo("Error! Invalid number of arguments!"); WScript.Quit(240); } var FText=oArg(0); var FSO=WScript.CreateObject("Scripting.FileSystemObject"); var InFile; try {InFile = FSO.OpenTextFile(FText,1);} catch (e) { if (e !=0 ) { WScript.Echo("Error! " + FText + " " + e.description); WScript.Quit(240); } } var TextAll = InFile.ReadAll(); InFile.Close(); var ss,RegRep; for (var i = 1; i < nArg; i+=2) { // WScript.Echo(oArg(i) + " " + oArg(i+1)); TextAll=TextAll.replace(new RegExp(oArg(i),"ig"),oArg(i+1)); } InFile = FSO.OpenTextFile(FText,2); InFile.Write(TextAll); InFile.Close(); "\|заменяемое\|" "|замена|" Количество пар произвольно Я принципиально хотел сохранить символы | при поиске и замене, из опасения ложного срабатывания. Но, каюсь, не сумел написать регулярное выражение, если указывать в виде "|заменяемое|" "|замена|", поэтому приходится писать "\|заменяемое\|" Путь к файлам укажите свой. Надеюсь, найдутся люди и натыкают меня носом, как это сделать. |
------- Последний раз редактировалось megaloman, 10-08-2018 в 18:13. Отправлено: 18:05, 10-08-2018 | #14 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 11:08, 13-08-2018 | #15 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 13:01, 31-01-2019 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата loficous:
|
|
Отправлено: 18:54, 31-01-2019 | #17 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Iska:
дело в том, что в прописываемом пути не должно быть кирилицы (названия папок и самого скрипта). как только я сделал так как вы сказали,сразу увидел что пишется в командной строке и выявил проблему. вопрос можно ли какнибудь сделать так чтобы он принимал кирилицу, или нет? |
|
Отправлено: 06:12, 01-02-2019 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата loficous:
|
|
Отправлено: 06:50, 01-02-2019 | #19 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 11:22, 01-02-2019 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помогите написать батник, копирующий файлы по дате изменения | kirillius | Скриптовые языки администрирования Windows | 4 | 22-07-2014 17:31 | |
CMD/BAT - [решено] Помогите написать батник Пароль на CMD | galaxy_pirat@vk | Скриптовые языки администрирования Windows | 3 | 11-10-2013 16:34 | |
CMD/BAT - Слияние содержимого txt файлов в один. | rvm.luma | Скриптовые языки администрирования Windows | 4 | 07-09-2013 15:11 | |
CMD/BAT - [решено] Помогите сделать батник для копирование файлов с удаленых ip | Moksar | Скриптовые языки администрирования Windows | 4 | 30-09-2010 22:01 | |
CMD/BAT - [решено] помогите написать батничек для копирования файлов | anatoly_neo | Скриптовые языки администрирования Windows | 9 | 20-09-2010 15:11 |
|