Powershell Select-String, а затем получить данные о возвращенных файлах - PullRequest
2 голосов
/ 02 февраля 2012

Я признаю, что сегодня я очень устал, но даже это не оправдывает тот кошмар, который я, кажется, сейчас создаю для себя с помощью Powershell.

По сути, целью является поиск в каталоге строки, котораясодержится в некоторых документах слово.Затем мне нужно вернуть имя файла, дату создания и время последней записи.Я подумал, что легко, но на каком-то этапе я далеко отошел и продолжаю подниматься.

Пока я выполнил поиск и экспортировал переменную пути в текстовый файл, давая мне путь к файлам.которые содержат строку.Затем я попытался использовать цикл foreach для загрузки содержимого файла и запуска Get-ChildItem для каждой записи, передаваемой по каналу по имени объекта-выбора, CreationTime, LastWriteTime.Я наконец-то> это текстовый файл.Однако теперь кажется, что он получает информацию для каждого файла в каталоге, а не только для тех, которые содержат строку, которую я ищу.У меня такое ощущение, что я слишком сильно усложняю это, как я склонен к этим вещам.Любая помощь с благодарностью.

Get-ChildItem -Recurse -Include *.doc | Select-String "Shiba" | select-object path > C:\TRCALM\shibapath.txt


$files = get-content C:\TRCALM\shibapath.txt


foreach($i in $files){gci $i | select-object Name,CreationTime,LastWriteTime > C:\TRCALM\SHIBADates.txt}

1 Ответ

4 голосов
/ 03 февраля 2012

Вы были почти там:

$files = (Get-ChildItem  -Recurse -Include *.doc | Select-String "Shiba"| select-object path )
$k = foreach($i in $files){ (gci $i.Path | select-object Name,CreationTime,LastWriteTime) } 
$k > C:\pst\SHIBADates.txt 
...