"Datamonitor"라는 단어가 들어있는 디렉토리 내의 모든 파일을 검색하고 "Datamonitor"라는 접두어가 붙은 기존 이름을 사용하여 파일의 이름을 바꾸는 스크립트를 작성하려고합니다.Powershell, 키워드가 들어있는 파일을 찾은 다음 해당 파일의 이름을 바꿉니다.
SelectString cmdlet을 사용했지만이 방법을 사용할 수없는 것 같습니다. 아마도 수정 될 수있는 코드를 발견했지만 어떻게 해결할 수 없었습니다.
$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
}
}
사람이 내 키워드 검색이 개정 도울 수 및 .properties의 파일을 Rename-Item -Newmane {"Datamonitor_""+$_.Name}
많은 감사
도움 주셔서 감사합니다. – sticks
죄송합니다. 질문이 하나 더 있습니다 ... "datamonitor"가 포함 된 모든 파일의 파일 이름을 포함하는 텍스트 파일을 만들고 싶다면 어떻게해야합니까? 'ForEach-Object {$ _. Name}> C/path/file.txt'와 같은 것으로'Rename-Item'을 바꿀 수 있습니까? – sticks
ForEach-Object {$ _. Name | out-file C : \ path \ file.txt -append –