Dateiname mit Powershell erweitern
Hallo,
ich benötige ein Script mit dem ich meine Bilder die sich in einem Ordner befinden umbenenne bzw. erweitern kann. Die Dateien lauten im Ursprung alle so:
100841
100841_02
100841_03
100841_04
100858
100858_02
100858_03
100858_04
usw.
Am Ende sollen Dateien wie folgt aussehen:
4042804100841
4042804100841.PT01
4042804100841.PT02
4042804100841.PT03
4042804100858
4042804100858.PT01
4042804100858.PT02
4042804100858.PT03
Der Dateiname soll überall um die 7-stellige Nummer (4042804) erweitert werden und zwar vor der tatsächlichen Nummer und die "_02" "_03" "_04" sollen durch ".PT01" ".P102" ".PT03" ersetzt werden.
Kann mir da jemand weiter helfen ?
Ich wäre sehr Dankbar für jegliche Hilfe
ich benötige ein Script mit dem ich meine Bilder die sich in einem Ordner befinden umbenenne bzw. erweitern kann. Die Dateien lauten im Ursprung alle so:
100841
100841_02
100841_03
100841_04
100858
100858_02
100858_03
100858_04
usw.
Am Ende sollen Dateien wie folgt aussehen:
4042804100841
4042804100841.PT01
4042804100841.PT02
4042804100841.PT03
4042804100858
4042804100858.PT01
4042804100858.PT02
4042804100858.PT03
Der Dateiname soll überall um die 7-stellige Nummer (4042804) erweitert werden und zwar vor der tatsächlichen Nummer und die "_02" "_03" "_04" sollen durch ".PT01" ".P102" ".PT03" ersetzt werden.
Kann mir da jemand weiter helfen ?
Ich wäre sehr Dankbar für jegliche Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 284146
Url: https://administrator.de/forum/dateiname-mit-powershell-erweitern-284146.html
Ausgedruckt am: 20.04.2025 um 17:04 Uhr
28 Kommentare
Neuester Kommentar

Moin,
Gruß jodel32
$folder = 'D:\bilder'
$nummer = '1234567'
gci $folder | ?{!$_.PSIsContainer} | %{
if ($_.Name.Contains('_')){
$newname = "$nummer$($_.Basename.Split('_')).PT$($_.Basename.split('_')[1])$($_.Extension)"
}else{
$newname = "$nummer$($_.Name)"
}
rename-item $_.FullName -NewName $newname
}

ist oben angepasst, leider wirfst du hier die Namen etwas durcheinander und sagst nicht was mit der "Dateierweiterung" geschehen soll und ob das PTXX die neue Dateierweiterung sein soll 

Zitat von @akoch85:
Die Dateierweiterung soll wie gehabt .jpg bleiben, nur der Name soll geändert werden also aus
Wenn ich das weiß ist das kein Problem Die Dateierweiterung soll wie gehabt .jpg bleiben, nur der Name soll geändert werden also aus

Du hast den Code zu früh kopiert hatte das abgeändert ... sorry lahmes Smartphone 

Zitat von @TlBERlUS:
Guten Morgen,
im Zweifel so:
Das beinhaltet ja die ganzen wünsche des TO nicht ..., und es berücksichtigt nur Zahlen bis 09 Guten Morgen,
im Zweifel so:
> $arr=gci C:\test | select -ExpandProperty name
> foreach ($a in $arr){
> $c = $a -replace "_0[0-9]",""
> Rename-Item c:\test\$a -NewName $c
> }
>

Bitte den Beitrag dann noch als gelöst markieren. Danke.
$folder = 'D:\bilder'
$nummer = '1234567'
gci $folder | ?{!$_.PSIsContainer} | %{
$dest = $_.DirectoryName + "\" + $_.BaseName.Split('_')
if (!(Test-Path $dest)){md $dest}
copy-item -Path $_.FullName -Destination "$dest\$nummer$($_.Basename -replace '_(\d+)$','.PT$1')$($_.Extension)"
}
Zitat von @akoch85:
Ich danke Dir vielmals Uwe!!! habe mindestens 1 Woche Zeit gespart !!! Vielen Dank nochmal !!!
Ich danke Dir vielmals Uwe!!! habe mindestens 1 Woche Zeit gespart !!! Vielen Dank nochmal !!!
1 Woche? Solltest dort 20k Dateien per Hand umbenennen und sortieren??
Zitat von @akoch85:
So in der Art, hab grad nach dem Studium in einem Unternehmen angefangen. Möchte hier etwas Ordnung rein bringen :D
So in der Art, hab grad nach dem Studium in einem Unternehmen angefangen. Möchte hier etwas Ordnung rein bringen :D
Ohne dir nahe treten zu wollen, aber laut deinem Profil bist du Entwickler. Solltest du ein solches Skript nicht erstellen können?
Hi,
ist zwar mal wieder nicht ganz eindeutig, aber hier meine Interpretation deiner Schilderung.
Grüße Uwe
ist zwar mal wieder nicht ganz eindeutig, aber hier meine Interpretation deiner Schilderung.
$folder = 'C:\temp\bilder'
$destfolder = 'C:\temp\ziel'
$numbers = @('11111','22222','33333','44444','55555')
gci $folder | ?{!$_.PSIsContainer} | %{
$file = $_
$numbers | %{
$dest = "$destfolder\$_"
if (!(Test-Path $dest)){md $dest}
copy-item -Path $file.FullName -Destination "$dest\$($file.Basename -replace '^(\d{7})(\d+)(.*)',('$1' + $_ + '$3' ))$($file.Extension)"
}
}