2016-04-24 5 views
0

Ich versehentlich versehentlich über tausend Dateien als filename.jpg.jpg benannt. Mein gewünschter Endzustand ist der Dateiname filename.jpg. Wie kann ich PowerShell verwenden, um das Problem zu beheben?rename file.jpg.jpg zu file.jpg mit Powershell

Ich habe viele Beispiele aus Blogs versucht und finde, dass die erste .jpg offenbar als die Dateierweiterung gesehen wird. Jede Hilfe wäre sehr willkommen, da meine einzige Alternative darin besteht, alle Dateien manuell umzubenennen.

+0

Hallo, ist jede Bash-Lösung gut für dich? Alle Dateien .jpg.jpg befinden sich im selben Verzeichnis? – JazZ

+0

@ AdrienLeber PowerShell impliziert Windows, das nicht mit bash kommt. –

+0

Ok, löschte meine Antwort. Danke, Ryan. – JazZ

Antwort

1

die Sie interessieren,

Get-childItem constant* | % {rename-item $_.name ($_.name -replace '.jpg.jpg','.jpg')} 

es .jpg.jpg zu .jpg

+3

Dies hat auch das Potenzial zu anderen Dingen wie sjpg1jpg .... passen. Sie sollten Ihre Perioden zu entkommen, wenn Sie Regex verwenden oder zumindest bewusst sein, das Risiko. – Matt

+1

Und die Eigenschaft 'name' funktioniert nur, wenn das Arbeitsverzeichnis mit der umzubenennenden Datei identisch ist. –

1

Sie könnten das Get-ChildItem Cmdlets verwenden, um die Dateien abzurufen und Vorfilter mit dem -Filter Parameter ersetzen wird.

Sie sollten die FullName Eigenschaft anstelle des Name für das Rename-Item Cmdlets, wenn Ihr Arbeitsverzeichnis ein diffrent ist.

Die regex ich hier verwendet, entkommt die Punkte (von Matt erwähnt) und stellt auch sicher, dass das Ende des Dateinamens ($) übereinstimmen.

Get-ChildItem -Path 'YOUR_PATH_HERE' -Filter '*.jpg.jpg' | 
    foreach { Rename-Item $_.FullName ($_.FullName-replace '\.jpg\.jpg$','.jpg') } 

Hinweis: Wenn Sie müssen rekursiv die Dateien umbenennen, müssen Sie nur -recurse zum Get-ChildItem Cmdlets hinzuzufügen.

+1

'Get-ChildItem -Pfad 'YOUR_PATH_HERE' -Filter '* .jpg.jpg' | Rename-Item -NeuerName {$ _. FullName-replace '\ .jpg \ .jpg $', '. Jpg'} 'sollte auch funktionieren – Matt

+0

* hust * antworte nicht auf Gimmie die Codes Fragen * hust * – Matt