somes
10-04-2009, 15:07
Добрые сутки.
Есть текстовый файл, экспортированный секьюрити лог, в нём события, даты, учётные записи за два месяца. Задача получить новый список с перечнем учётных записей, существующих в родительском списке, без дублирования.
o:\sec.txt - исходный файл
o:\fin.txt - созданный ручками пустой файл для конечного списка.
Незатейливо пишу в командлайне:
For /F "tokens=8" %a in (o:\sec.txt) do For /F "skip=2 tokens=1" %k in ('find "%a" o:\fin.txt') do IF NOT "%a" == "%k" echo %a >> o:\fin.txt
tokens=8 так как это подстрока с учётной записью в исходном списке. Казалось бы, куда проще - взять имя, провести поиск в конечном файле, отбросить лишний вывод, если совпадение есть - ничего не записывать, иначе записать имя учетной записи в конечныйфайл. Однако - не работает. Обидно. По ощущениям - если переменная %k не определена - то IF не работает вообще никак и никогда. DEFINED тоже прикрутить не вышло. Помогите, люди добрые. =) Success Audit 10.04.2009 12:20:26 Security Logon/Logoff 540 pupkin
Success Audit 10.04.2009 12:20:26 Security Logon/Logoff 576 popkin
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 ivanov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 petrov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 sidorov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 ivanov
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 576 popkin
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 528 ivanov
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 552 popkin
Success Audit 10.04.2009 12:18:40 Security Logon/Logoff 538 pupkin
Есть текстовый файл, экспортированный секьюрити лог, в нём события, даты, учётные записи за два месяца. Задача получить новый список с перечнем учётных записей, существующих в родительском списке, без дублирования.
o:\sec.txt - исходный файл
o:\fin.txt - созданный ручками пустой файл для конечного списка.
Незатейливо пишу в командлайне:
For /F "tokens=8" %a in (o:\sec.txt) do For /F "skip=2 tokens=1" %k in ('find "%a" o:\fin.txt') do IF NOT "%a" == "%k" echo %a >> o:\fin.txt
tokens=8 так как это подстрока с учётной записью в исходном списке. Казалось бы, куда проще - взять имя, провести поиск в конечном файле, отбросить лишний вывод, если совпадение есть - ничего не записывать, иначе записать имя учетной записи в конечныйфайл. Однако - не работает. Обидно. По ощущениям - если переменная %k не определена - то IF не работает вообще никак и никогда. DEFINED тоже прикрутить не вышло. Помогите, люди добрые. =) Success Audit 10.04.2009 12:20:26 Security Logon/Logoff 540 pupkin
Success Audit 10.04.2009 12:20:26 Security Logon/Logoff 576 popkin
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 ivanov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 petrov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 sidorov
Success Audit 10.04.2009 12:19:01 Security Logon/Logoff 538 ivanov
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 576 popkin
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 528 ivanov
Success Audit 10.04.2009 12:18:41 Security Logon/Logoff 552 popkin
Success Audit 10.04.2009 12:18:40 Security Logon/Logoff 538 pupkin