Анализ файла журнала RoboCopy

1

Можно ли проанализировать текстовый файл журнала, выведенный из RoboCopy, и извлечь строки, которые определены как «Новый каталог» и «Дополнительный каталог»?

Я хотел бы, чтобы строка из журнала содержала все детали, возвращенные относительно этого "New Dir" или "Extra Dir"

Причина выполнения этой задачи - понять, как со временем меняются две структуры папок. Одна версия была сохранена внутри материнской компании, вторая использовалась консультантом.

Для вашей информации я использую Windows 7.

BobJim
источник

Ответы:

1

Используйте следующую строку PowerShell :

Get-ChildItem C:\robocopy-log.txt | Select-String -Pattern '(New Dir)|(Extra Dir)'


Для того, чтобы отфильтровать из в имени файла и номера строк использовать:

Get-ChildItem C:\robocopy-log.txt | Select-String -Pattern '(New Dir)|(Extra Dir)' | ForEach-Object {$_.Line}

мистифицировать
источник
Похоже, код запускается и сразу возвращается к исходной букве диска H: \>? Нужен ли какой-то дополнительный код для записи вывода в отдельный текстовый файл?
BobJim
@BobJim Да. Просто перенаправьте вывод в файл следующим образом:Get-ChildItem C:\robocopy-log.txt | Select-String -Pattern '(New Dir)|(Extra Dir)' > results.txt
Джош
Я пытался использовать '| Get-Process | Out-File C: \ results.txt. ' Мой метод выглядит намного сложнее. Используя ваш метод, он создает текстовый файл, но он пустой ???
BobJim
1
Используя код, который я разместил, и образец текстового файла, я могу отфильтровать соответствующие строки. Вы пытались запустить команду в командной строке PowerShell, чтобы увидеть, какие результаты вы получите?
Джош
1
Попробуйте Get-ChildItem C:\robocopy-log.txt | Select-String -Pattern '(New Dir)|(Extra Dir)' | ForEach-Object {$_.Line}отфильтровать имя файла и номера строк.
Джош