Я пытаюсь написать скрипт, который ищет все файлы в каталоге, содержащем слово «Datamonitor», и переименуйте файлы с использованием существующего имени с префиксом «Datamonitor».Powershell, найдите файлы, содержащие ключевое слово, затем переименуйте эти файлы.
Я попытался использовать командлет SelectString, но это, похоже, не доступно для меня. Я нашел код, который можно было бы изменить, но я не мог понять, как это сделать.
$directoryToTarget=$args[0]
$wordToFind=$args[1]
$wordToReplace=$args[2]
Clear-Content log.txt
Get-ChildItem -Path $directoryToTarget -Filter *.properties -Recurse | where { !$_.PSIsContainer } | % {
$file = Get-Content $_.FullName
$containsWord = $file | %{$_ -match $wordToFind}
If($containsWord -contains $true)
{
Add-Content log.txt $_.FullName
($file) | ForEach-Object { $_ -replace $wordToFind , $wordToReplace } |
Set-Content $_.FullName
}
}
ли кто-нибудь сможет помочь мне изменить это, чтобы найти мое ключевое слово и включают в себя Rename-Item -Newmane {"Datamonitor_""+$_.Name}
Большое спасибо
Спасибо вам за помощь. – sticks
Извините, еще один вопрос ... предположим, я хотел создать текстовый файл, содержащий имена файлов всех файлов, содержащих «datamonitor», как бы я это сделал? Могу ли я поменять «Переименовать-элемент» на что-то вроде «ForEach-Object {$ _. Name}> C/path/file.txt' – sticks
Я бы использовал ForEach-Object {$ _. Name | out-file C: \ path \ file.txt -append} –