С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
1

Поиск значения в txt файле по значению из другого txt

11.03.2019, 14:23. Показов 2187. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Подскажите пожалуйста как осуществить поиск значения в txt файле по значению из другого txt с помощью bat файла.

Суть задачи:
1. Есть txt файл для храниния значений (LOG.txt)
2. Есть txt файл (to_log.txt), который выгружается программой в определенную папку и мы копируем данные с него в LOG.txt (дописываем вконец файла).
3. Для этого есть bat файл с авто запуском (see_to_log.bat). Он висит в памяти и раз в несколько секунд проверяет появился ли в нужной нам папке to_log.txt и выполняет задачу копирования и переименования (to_log1.txt):

Windows Batch file
1
2
3
4
5
6
7
8
@echo off
@chcp 1251
@:loop
@ping -n 1 -w 10000 192.168.254.254 >nul
@dir/b/a-d "C:\Folder\to_log.txt">nul 2>&1 || goto:loop
@more <C:\Folder\to_log.txt >>X:\Arch\LOG\LOG.txt
@rename C:\Folder\to_log.txt to_log1.txt
@goto:loop
4. Файлы to_log.txt и LOG.txt с такой структурой (одна из строк):
1 0534009999740 804 99999 вввввввв, ввв. 74, ввввв, , вввввв. вввввввввввв 1 2 2 1 4 20 0.00 0.00 ввввввввввввввввввввввввввв/2018/12/04.12.2018 ввв/ввв ввв0412.ввв;2666819074

5. Нам нужно искать совпадения по номеру (num) 0534009999740. Этот номер всегда имеет четкую позицию от начала строки с 9 позиции по 21 (всего 13 знаков). Этот номер есть как в to_log.txt так и в LOG.txt

6. Задача, добавить код в see_to_log.bat (как мы уже делаем), но что бы в момент дописывания to_log.txt в LOG.txt искать по номеру (num). И если есть совпадение - делать какой-то алерт, + выводить всю строку совпадения в новый txt (double.txt).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2019, 14:23
Ответы с готовыми решениями:

Нужно заменить строку в файле text.txt словами из другого файла words.txt
Допустим в файле words.txt есть какие-то слова ,например : #один,#два,#три. И есть файл...

Поиск в заданной ветке реестра по значению параметра и запись в txt значение другого пораметра
Здравствуйте! Есть такая задача. Мне надо в...

Переписать компоненты файла 1.txt в файл 3.txt так, чтобы в файле 3.txt числа шли в определенном порядке
Дан файл 1.txt, компоненты которого являются целыми числами.Файл 1.txt содержит столько же...

Поиск строк в одном txt-файле и добавление этих строк в другой txt-файл
Добрый день! Помогите, пожалуйста, разобраться. У меня лог файл, из которого мне нужно получить...

16
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.03.2019, 00:23 2
Цитата Сообщение от yu_m Посмотреть сообщение
от начала строки с 9 позиции
а в приведенной строке не так
приводите достоверный вариант, а лучше живой кусок файла в архиве, будет видна и кодировка попутно и есть ли кириллица. Может ли быть несколько строк с таким номером в файле, какую тогда брать в вывод при совпадении.
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 13:04  [ТС] 3
Да вы правы. Изначально структура формируется в файле to_log.txt.
Мы там имеем кусочек кода:
0 0534001067758
так вот изначально это 0 (fixed lenght 4 знака + Tab) и только потом начинается 0534001067758 (fixed lenght 13 знаков + Tab)

А во время копирования в LOG.txt - Tab превращается в 0 (fixed lenght 8 знаков) и потом начинается 0534001067758 (fixed lenght 13 знаков + 3 пробела)

Файлы в аттаче.
Вложения
Тип файла: rar txt.rar (1.5 Кб, 3 просмотров)
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 14:05 4
Цитата Сообщение от yu_m Посмотреть сообщение
Задача, добавить код в see_to_log.bat (как мы уже делаем), но что бы в момент дописывания to_log.txt в LOG.txt искать по номеру (num). И если есть совпадение - делать какой-то алерт, + выводить всю строку совпадения в новый txt (double.txt).
Powershell вариант:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$log     = 'C:\Temp\log.txt'
$log_dup = 'C:\Temp\log_dup.txt'
$to_log  = 'c:\temp\to_log.txt'
 
foreach ($str in Get-Content $to_log -Encoding Default)
{
    if ($str -match '^\d+\s+(\d{13}).+')
    {
        if ($dup = Select-String -Path $log -Pattern "^\d+\s+$($Matches[1])" -Encoding default)
        {
            Write-Host $Matches[1] "found in" $log -ForegroundColor Yellow
            $dup.Line | Add-Content -Path $log_dup -Encoding UTF8
        }
        else
        {
            Write-Host $Matches[1] 'new string ->' $log -ForegroundColor Green
            $str | Add-Content -Path $log -Encoding Default
        }
    }
}
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 14:18  [ТС] 5
KDE777, Powershell вариант - хорошо, можно попросить тогда и первую часть дописать туда же. Что бы был один, цельный скрипт.
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 15:05 6
Цитата Сообщение от yu_m Посмотреть сообщение
можно попросить тогда и первую часть дописать туда же. Что бы был один, цельный скрипт
Никаких бесконечных циклов с таймаутами. Для отслеживания нового файла используется подписка (System.IO.FileSystemWatcher) на событие о создание этого файла в нужном каталоге:

PowerShell
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
31
32
33
34
$folder = 'C:\Temp'
 
$log         = "$folder\log.txt"
$log_dup     = "$folder\log_dup.txt"
$input_file  = "to_log.txt"
$input_file1 = "to_log1.txt"
 
$Watcher        = New-Object System.IO.FileSystemWatcher
$Watcher.Path   = $folder
$Watcher.Filter = $input_file
 
Register-ObjectEvent $watcher "Created" -SourceIdentifier "FileSystemWatcher.Created" -Action {
 
    $to_log = $Event.SourceEventArgs.FullPath
 
    foreach ($str in Get-Content $to_log -Encoding Default)
    {
        if ($str -match '^\d+\s+(\d{13}).+')
        {
            if ($dup = Select-String -Path $log -Pattern "^\d+\s+$($Matches[1])" -Encoding default)
            {
                Write-Host $Matches[1] "found in" $log -ForegroundColor Yellow
                $dup.Line | Add-Content -Path $log_dup -Encoding UTF8
            }
            else
            {
                Write-Host $Matches[1] 'new string ->' $log -ForegroundColor Green
                $str | Add-Content -Path $log -Encoding Default
            }
        }
    }
 
    Move-Item -Path $to_log -Destination "$folder\$input_file1" -Force
}
1
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 15:16  [ТС] 7
Спасибо!
Где то потерялась часть которая копирует все данные из to_log.txt в X:\Arch\LOG\LOG.txt.
Это событие должно выполнятся после проверки на дубли и только если их нет - копировать в LOG.txt.
Если же есть - выдавать алерт и создавать файл log_dup.txt.

Еще раз спасибо!
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 15:33 8
Цитата Сообщение от yu_m Посмотреть сообщение
Где то потерялась часть которая копирует все данные из to_log.txt в X:\Arch\LOG\LOG.txt.
С чего вы это взяли???

Запускаю скрипт из #6

1. В C:\temp\ есть файл:

LOG.txt
Кликните здесь для просмотра всего текста
1 0534001067731 804 00030 вуx. Дxxx, xуд. 53, x. Мxкxxxїв, , Мxкxxxївськx xxx., ФXП СXВЧЕНКX ГРИГXРІЙ ІВXНXВИЧ 1 2 2 1 4 10 0.00 0.00 X:/aval/Мxркxтxxг/Мxркxтxxг_Xвxрдрxфт/2018.12.05 рxк/Xвxxь_XВД_скxсувxxxx_051218.wfd
1 0534001067740 804 00100 вуx. Кxтxxрxвськxгx, xуд. 74, x. Бxxx Цxрквx, , Кxївськx xxx. Кxрxчxxкx Xxдрxй Вxтxxxйxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2666819074
2 0534001067758 804 00552 вуx. Прxxxрськx,xуд.52, кв. 55, x. Свxтxxвxдськ, , Кxрxвxгрxдськx xxx. Дxxxдxxкx Нxдxx Вxсxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2850808488
3 0534001067766 804 00000 вуx. Зxрxчxxськx, xуд. 18, кв. 8, x. Хxxxьxxцькxй, , Хxxxьxxцькx xxx. Крxчкxвськxй Xxxг Івxxxвxч 1 2 2 1 4 15 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2894715814
4 0534001067774 804 00000 вуx. Пxxуxxткx,xуд. 41, x.Кxвxxь, Кxвxxьськxй р.x, Вxxxxськx xxx. Гxргxшx Тxтxxx Вxxxрxївxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2619107189
5 0534001067782 804 00000 вуx.Вxддxxxxx, xуд.50, x.Дxxпрx, , Дxxпрxпxтрxвськx xxx. Вxртxxxцькxй Юрxй Дxxтрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2577921058
6 0534001067790 804 00000 прxв. 23 Сxрпxx, xуд. 10, кв. 15, x. Хxркxв, , Хxркxвськx xxx. Бxстрxцькxй Xxxг Xxxтxxxйxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2841812814
7 0534001067804 804 00000 вуx. Гxx. Бxчxрxвx, xуд. 38, кв. 4, x. Xдxсx, , Xдxськx xxx. Xпрxxxxкx Xxдрxй Вxктxрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2457511272
8 0534001067812 804 00541 вуx. Стрxxкxвx, xуд. 34, с. Пxршxтрxвxxвx, Кxxxxтxрxxвськxй р-x, Xдxськx xxx. Гxxxxxxвx Свxтxxxx Вxxxрxївxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2801922403
9 0534001067820 804 00600 вуx. Рxд. Мxxxцxї, xуд. 25,кxрп.1, кв. 28, x. Ізxxїx, , Xдxськx xxx. Дукxвx Вxxxxтxxx Iвxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2574721144
10 0534001067839 804 00000 вуx. Пxтxxx 25, кxрпус.1, кв.40, x. Хxрсxx, , Гxгxтxдзx Xвтxxдxx Гxвxєвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2359210052
11 0534001067847 804 00300 вуx.Мxртxxцx, кв.49, x.Кxxуш, Кxxуськxй р.x, Івxxx-Фрxxкxвськx xxx. Гxушкx Вxдxx Вxxxдxxxрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;3020919274
12 0534001067855 804 00000 вуx. Мxxxгxxxскxвськx, xуд. 8X, кв. 28, x. Львxв, , Львxвськx xxx. Двxрxцькx Гxxxxx Вxxxдxxxрxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2682203686
13 0534001067863 804 00000 вуx. Лxгxцькxгx, xуд. 18, кв. 72, x. Ужгxрxд, , Зxкxрпxтськx xxx. Прxсxxxк Нxтxxxx Мxхxйxxвxx 1 2 2 1 4 15 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2245423861
14 0534001067871 804 00212 вуx. Гxрькxгx, xуд. 4, с. Зxрxчxвx, Пxрxчxxськxй р-x, Зxкxрпxтськx xxx. Бxxxч Мxр"xxx Вxсxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;24279028622


2. копирую в c:\temp файл:

to_log.txt
Кликните здесь для просмотра всего текста
0 0534001067758 804 00000 вуx. Чxрxвxx 153x, 29, Зxпxрxжжx, Зxпxрxзькx Кxстxx Євгxx Вxxxдxxxрxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс хxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.ххх;KHO-33/20271
1 0534001067820 804 00000 вуx. Айвxзxвськxгx 22, 2, Львxв, Львxвськx Гxxxк Ярxсxxв Вxxxдxxxрxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20272
2 0534001067555 804 00042 вуx. Пxxьxвx 5, 0, Нxуxxxкx, Пxxтxвськx Гурxx Оxxксxй Івxxxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20273
3 0534001067839 804 00042 вуx. Пxxьxвx 5, 0, Нxуxxxкx, Пxxтxвськx Гурxx Оxxксxй Івxxxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20273
4 0534001067666 804 00042 вуx. Пxxьxвx 5, 0, Нxуxxxкx, Пxxтxвськx Гурxx Оxxксxй Івxxxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20273


3. На экране появляется:

Код
0534001067758 found in C:\Temp\log.txt
0534001067820 found in C:\Temp\log.txt
0534001067555 new string -> C:\Temp\log.txt
0534001067839 found in C:\Temp\log.txt
0534001067666 new string -> C:\Temp\log.txt
4. Содержимое C:\Temp\log.txt становится таким:

log.txt
Кликните здесь для просмотра всего текста
1 0534001067731 804 00030 вуx. Дxxx, xуд. 53, x. Мxкxxxїв, , Мxкxxxївськx xxx., ФXП СXВЧЕНКX ГРИГXРІЙ ІВXНXВИЧ 1 2 2 1 4 10 0.00 0.00 X:/aval/Мxркxтxxг/Мxркxтxxг_Xвxрдрxфт/2018.12.05 рxк/Xвxxь_XВД_скxсувxxxx_051218.wfd
1 0534001067740 804 00100 вуx. Кxтxxрxвськxгx, xуд. 74, x. Бxxx Цxрквx, , Кxївськx xxx. Кxрxчxxкx Xxдрxй Вxтxxxйxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2666819074
2 0534001067758 804 00552 вуx. Прxxxрськx,xуд.52, кв. 55, x. Свxтxxвxдськ, , Кxрxвxгрxдськx xxx. Дxxxдxxкx Нxдxx Вxсxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2850808488
3 0534001067766 804 00000 вуx. Зxрxчxxськx, xуд. 18, кв. 8, x. Хxxxьxxцькxй, , Хxxxьxxцькx xxx. Крxчкxвськxй Xxxг Івxxxвxч 1 2 2 1 4 15 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2894715814
4 0534001067774 804 00000 вуx. Пxxуxxткx,xуд. 41, x.Кxвxxь, Кxвxxьськxй р.x, Вxxxxськx xxx. Гxргxшx Тxтxxx Вxxxрxївxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2619107189
5 0534001067782 804 00000 вуx.Вxддxxxxx, xуд.50, x.Дxxпрx, , Дxxпрxпxтрxвськx xxx. Вxртxxxцькxй Юрxй Дxxтрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2577921058
6 0534001067790 804 00000 прxв. 23 Сxрпxx, xуд. 10, кв. 15, x. Хxркxв, , Хxркxвськx xxx. Бxстрxцькxй Xxxг Xxxтxxxйxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2841812814
7 0534001067804 804 00000 вуx. Гxx. Бxчxрxвx, xуд. 38, кв. 4, x. Xдxсx, , Xдxськx xxx. Xпрxxxxкx Xxдрxй Вxктxрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2457511272
8 0534001067812 804 00541 вуx. Стрxxкxвx, xуд. 34, с. Пxршxтрxвxxвx, Кxxxxтxрxxвськxй р-x, Xдxськx xxx. Гxxxxxxвx Свxтxxxx Вxxxрxївxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2801922403
9 0534001067820 804 00600 вуx. Рxд. Мxxxцxї, xуд. 25,кxрп.1, кв. 28, x. Ізxxїx, , Xдxськx xxx. Дукxвx Вxxxxтxxx Iвxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2574721144
10 0534001067839 804 00000 вуx. Пxтxxx 25, кxрпус.1, кв.40, x. Хxрсxx, , Гxгxтxдзx Xвтxxдxx Гxвxєвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2359210052
11 0534001067847 804 00300 вуx.Мxртxxцx, кв.49, x.Кxxуш, Кxxуськxй р.x, Івxxx-Фрxxкxвськx xxx. Гxушкx Вxдxx Вxxxдxxxрxвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;3020919274
12 0534001067855 804 00000 вуx. Мxxxгxxxскxвськx, xуд. 8X, кв. 28, x. Львxв, , Львxвськx xxx. Двxрxцькx Гxxxxx Вxxxдxxxрxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2682203686
13 0534001067863 804 00000 вуx. Лxгxцькxгx, xуд. 18, кв. 72, x. Ужгxрxд, , Зxкxрпxтськx xxx. Прxсxxxк Нxтxxxx Мxхxйxxвxx 1 2 2 1 4 15 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2245423861
14 0534001067871 804 00212 вуx. Гxрькxгx, xуд. 4, с. Зxрxчxвx, Пxрxчxxськxй р-x, Зxкxрпxтськx xxx. Бxxxч Мxр"xxx Вxсxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;24279028622
2 0534001067555 804 00042 вуx. Пxxьxвx 5, 0, Нxуxxxкx, Пxxтxвськx Гурxx Оxxксxй Івxxxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20273
4 0534001067666 804 00042 вуx. Пxxьxвx 5, 0, Нxуxxxкx, Пxxтxвськx Гурxx Оxxксxй Івxxxвxч 1 2 2 1 1 7 0.00 0.00 X:/Рxxxсxxс Кxпxтxx/Прxxкт №5 Юрxсты/2019-03-07/Пxчтx 1103.wfd;KHO-33/20273


5. В c:\temp появляется файл:

log_dup.txt
Кликните здесь для просмотра всего текста
2 0534001067758 804 00552 вуx. Прxxxрськx,xуд.52, кв. 55, x. Свxтxxвxдськ, , Кxрxвxгрxдськx xxx. Дxxxдxxкx Нxдxx Вxсxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2850808488
9 0534001067820 804 00600 вуx. Рxд. Мxxxцxї, xуд. 25,кxрп.1, кв. 28, x. Ізxxїx, , Xдxськx xxx. Дукxвx Вxxxxтxxx Iвxxxвxx 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2574721144
10 0534001067839 804 00000 вуx. Пxтxxx 25, кxрпус.1, кв.40, x. Хxрсxx, , Гxгxтxдзx Xвтxxдxx Гxвxєвxч 1 2 2 1 4 20 0.00 0.00 X:/xxxxl/xxxxxxx/xxxxxxxxxxxxx/2018/12/04.12.2018 xxx/xxxxlxxx 0412.xxx;2359210052


6. Имя файла to_log.txt меняется на to_log1.txt
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 15:46  [ТС] 9
Спасибо!
Немного все же не так.
Мы храним LOG.txt на сетевом диске в подпапке: X:\Arch\LOG\LOG.txt. И сюда же нужно дописывать to_log.txt
Но! Дописывать только тогда когда не нашли дубликаты. Если же нашли хоть один - выдавать алерт и писать эти дубликаты в файл log_dup.txt.

Спасибо еще раз!
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 16:07 10
Цитата Сообщение от yu_m Посмотреть сообщение
Дописывать только тогда когда не нашли дубликаты. Если же нашли хоть один - выдавать алерт и писать эти дубликаты в файл log_dup.txt
У вас в архиве, в to_log.txt 3 строчки, т.е. если хотя бы одна из них содержит ID из log.txt, тогда мы не добавляем и другие строки (с не совпадающими ID)?
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 16:12  [ТС] 11
да, в данном случае мы ничего не запишем в LOG.txt. Но должны выдать алерт и записать в log_dup.txt.

Если этих дублирующихся данных (ID) не будет - тогда пишем в LOG.txt.
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 16:52 12
Цитата Сообщение от yu_m Посмотреть сообщение
да, в данном случае мы ничего не запишем в LOG.txt. Но должны выдать алерт и записать в log_dup.txt.
Если этих дублирующихся данных (ID) не будет - тогда пишем в LOG.txt
PowerShell
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
31
32
33
34
35
36
$folder = 'C:\Temp'
 
$log         = "$folder\log.txt"
$log_dup     = "$folder\log_dup.txt"
$input_file  = "to_log.txt"
$input_file1 = "to_log1.txt"
 
$Watcher        = New-Object System.IO.FileSystemWatcher
$Watcher.Path   = $folder
$Watcher.Filter = $input_file
 
Register-ObjectEvent $watcher "Created" -SourceIdentifier "FileSystemWatcher.Created" -Action {
 
    $to_log = $Event.SourceEventArgs.FullPath
    $text   = Get-Content -Path $to_log -Encoding Default
 
    if ($IDs = ($text | Select-String -Encoding Default -Pattern '^\d+\s+(\d{13}).+' |%{$_.Matches.Groups[1].Value}) -join '|')
    {
        if (Select-String -Path $log -Pattern "^\d+\s+(?:$IDs)" -Encoding default)
        {
            Write-Host "ID found in $log" -ForegroundColor Yellow
            $IDs -replace '\|',', ' | Out-Default
            $out = $log_dup
        }
        else
        {
            $out = $log
        }
        
        Write-Host "$to_log -> $out" -ForegroundColor Green
        $text | Add-Content -Path $out -Encoding UTF8
    }
    else {Write-Host "$to_log NOT contains ID" -ForegroundColor Red}
 
    Move-Item -Path $to_log -Destination "$folder\$input_file1" -Force
}
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
12.03.2019, 18:04  [ТС] 13
KDE777, спасибо вроде все работает.
Подскажите еще пожалуйста, можно ссылку на запуск данного ps1 файла положить в автозапуск?
А так же у меня сразу был вопрос с ExecutionPolicy. Для запуска задал в системе Set-ExecutionPolicy Unrestricted. Или нужны другие права? с привязкой может к папке?
Спасибо!
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
12.03.2019, 18:12 14
Цитата Сообщение от yu_m Посмотреть сообщение
можно ссылку на запуск данного ps1 файла положить в автозапуск?
Можно но не нужно. Создайте в планировщике задачу, срабатывающую на вход пользователя в систему, которая будет запускать powershell.exe с параметрами:

-ExecutionPolicy bypass -file "c:\Script\script.ps1"

Цитата Сообщение от yu_m Посмотреть сообщение
А так же у меня сразу был вопрос с ExecutionPolicy. Для запуска задал в системе Set-ExecutionPolicy Unrestricted. Или нужны другие права? с привязкой может к папке?
соответсвено, Set-ExecutionPolicy можете совсем не трогать.
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
13.03.2019, 16:40  [ТС] 15
KDE777, спасибо!
1. LOG.txt - сейчас наполняется через powershell и получается структура файла не меняется, такая же как и в to_log.txt (fixed lenght 4 знака + Tab + fixed lenght 13 знаков + Tab)
2. Не знаю с чем связано но как то не стабильно работает. 1й раз вставляю файл to_log.txt - он копируется в LOG.txt. Удаляю, вставляю снова этот же файл - выдает ошибку: to_log.txt NOT contains ID. Снова удаляю - вставляю - переносит в log_dup.txt
И так со всеми файлами. То копирует и переименовывает - то нет...

Кусок тхт, скриншоты того как выглядит структура тхт и ошибки прикрепляю.

Спасибо!
Миниатюры
Поиск значения в txt файле по значению из другого txt  
Изображения
 
Вложения
Тип файла: txt to_log.txt (48 байт, 2 просмотров)
0
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
13.03.2019, 17:25 16
Цитата Сообщение от yu_m Посмотреть сообщение
1й раз вставляю файл to_log.txt - он копируется в LOG.txt. Удаляю, вставляю снова этот же файл
Если скрипт отрабатывает, то удалять уже нечего, т.к. "to_log.txt", после обработки, автоматически переименовывается в "to_log1.txt". А если вы этот файл удаляете руками, значит скрипт ещё не закончил свою работу...

Цитата Сообщение от yu_m Посмотреть сообщение
выдает ошибку: to_log.txt NOT contains ID
Это говорит о том, что по заданному шаблону в файле ничего не найдено или "to_log.txt" просто пустой. Возможно это последствия ручного удаления to_log.txt

И ещё, какая у вас версия PS?
PowerShell
1
$PSVersionTable.PSVersion
Я всё проверял на PS 5.1
0
0 / 0 / 0
Регистрация: 11.03.2019
Сообщений: 13
13.03.2019, 19:12  [ТС] 17
KDE777, PowerShell версии 3.0 и обновить выше не получится по ряду причин.

Я так же изменил строку параметров в планировщике на:
Windows Batch file
1
-ExecutionPolicy bypass -NoExit -windowStyle hidden -file "c:\Script\script.ps1"
так как раньше ps запускался и сразу закрывался.

Спасибо еще раз!
0
13.03.2019, 19:12
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2019, 19:12
Помогаю со студенческими работами здесь

Дополнить .txt файл из другого .txt файла недостающими данными
Доброго времени суток. Подскажите как осуществить такую операцию с текстовым файлом. К...

Заменить кусок текста в .txt текстом из другого .txt
Мужики, привет! Такая проблема, имею .txt файл на ~200к строк. Вся структура имеет вот такой вот...

Посчитать сколько в файле input.txt символов и записать их количество в output.txt
Поступил на информатику, задали рассказать что и как делает программа, я напишу как считаю...

Файл: Написать программу нахождения в файле .txt нужной строчки по значению в ней.
Мне надо написать программу нахождения в файле .txt нужной строчки по значению в ней. До этого с...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru