Powershell - включить Get-Date в файл .log внутри командлета Add-Content - PullRequest
0 голосов
/ 16 июня 2020

Я сделал небольшой скрипт Powershell, который удаляет все файлы и папки, кроме определенных c. Сам скрипт работает довольно хорошо, но у меня много проблем с тем, чтобы журнал работал. В настоящее время я нахожусь на хорошем пути с командлетом Add-Content, который работает хорошо. Единственное, что я сейчас хочу включить, это небольшой командлет Get-Date внутри Add-Content, который также включает в журнал текущее время, когда был удален указанный c файл / папка. Но я просто не могу заставить его работать должным образом. Может ли кто-нибудь мне помочь?

Вот что у меня получилось:

Get-ChildItem -Path 'C:\sample\*\notesdata' -Recurse -exclude names.nsf |
Select -ExpandProperty FullName |
Where {$_ -notlike 'C:\sample\*\notesdata\Roaming*'} |
Where {$_ -notlike 'C:\sample\*\notesdata\Archive*'} |
sort length -Descending |
Remove-Item -force -Recurse -Verbose 4>&1 | Add-Content -Path .\ergebnis.log, .\ergebnis2.log -Value (Get-Date)

Не удаляются файл «names.nsf» и папки «Роуминг», «Архив».

Спасибо за вашу помощь :)

1 Ответ

0 голосов
/ 16 июня 2020

Согласитесь с @Olaf Я предполагаю, что вы получаете ошибку, например:

Add-Content: входной объект не может быть привязан к каким-либо параметрам для команды, потому что команда не принимает ввод конвейера или ввод и его свойства не соответствуют ни одному из параметров, которые принимают ввод конвейера.

Если вы хотите датировать вывод для целей регистрации, вы можете добавить что-то ForEach-Object перед Add-Content команда. Примерно так:

Remove-Item C:\temp\something.txt -Verbose 4>&1 | ForEach-Object{ "$(Get-Date -format g) : $($_)" } | Add-Content C:\temp\something2.txt

Сообщите нам, если это поможет. Спасибо.

...