Suchen & Umbenennen von Dateinamen mit Powershell
Erläuterung
// Suchen & Umbenennen von Dateinamen mit Powershell //
Dieses Skript sucht nach einem gewünschten Begriff in Dateinamen und entfernt / umbenennt diesen, falls der „Ersetzen“ auf $True gesetzt wurde, um. Steht „Ersetzen“ auf $False (default) dann werden nur nach den Dateinamen die den Begriff beinhalten gesucht und es wird keine Änderung durchgeführt.
Skript
#
# Autor: Jan Weis
# Version: 0.1
# www.it-explorations.de
#
#requires -Version 3
param
(
[Parameter(Mandatory = $true)][String]$RootVerzeichnis = 'C:\Test',
[Parameter(Mandatory = $true)][String]$SuchenNach = 'Log',
[String]$ErsetzenDurch = 'LOgFF',
[Switch]$Ersetzen
)
ForEach ($File in (Get-ChildItem -Path $RootVerzeichnis -Recurse -File | Where-Object -FilterScript {
$_.Name -like "*$SuchenNach*"
}
))
{
try
{
$Dateiname = ($File.Name).ToString()
$Dateiname = $Dateiname.Replace($SuchenNach,$ErsetzenDurch)
if ($Ersetzen)
{
Write-Host -Object "> Umbenennen: $($File.BaseName) " -NoNewline
Rename-Item -Path ($File.FullName) -NewName $Dateiname
Write-Host -Object 'OK!' -ForegroundColor Green
}
else
{
Write-Host -Object "> Nur Suchen: $($File.BaseName)"
}
}
catch
{
"Error was $_"
$line = $_.InvocationInfo.ScriptLineNumber
"Error was in Line $line"
}
}