2016-06-25 6 views
2

Ich habe einen Ordner mit Dateien mit mehreren Erweiterungen und ich muss sie in "thinname" umbenennen.
Umbenennen wie folgtPowershell: rename-item inkrementieren, wenn vorhanden (mehrere Erweiterungen)

test.txt -> thisname.txt 
test1.txt -> thisname1.txt 
bascic.vbs -> thisname.vbs 
basic1.vbs -> thisname1.vbs 

Die folgende passieren sollte, ist, was ich bisher versucht habe:

Get-ChildItem -Path $subfolder_path\*.* -exclude *.jpg, *.pdf | 
    rename-item -newname { -join($jxl) + $_.extension } 

Dieser Teil des Codes nur eine eine Datei umbenennen ich brauche Zuwachs auf allen Duplizität Erweiterungen zu machen .

Antwort

1

Ich bin nicht 100% sicher, ob ich voll und ganz Ihren Bedürfnissen verstanden, sondern geben diesem einen Versuch

Get-ChildItem -Path $subfolder_path\*.* -Exclude *.jpg, *.pdf | 
    Rename-Item -NewName { 
     $newName = "thisname" + $_.Extension 
     for($i = 0; Test-Path $newName; ++$i) { 
      $newName = "thisname" + $i + $_.Extension 
     } 
     $newName 
    } 

Wenn dies nicht hilft bitte

+0

Clever Nutzung der Ausgangsbedingung der 'for' Schleife :) – sodawillow

+0

Thx - und thx für die nette Formatierung – DAXaholic

+0

Nicht genug, diese Umbenennungs noch nur die erste Datei auf dem zweiten i bekam Fehler: Rename-Item: kann nicht erstellt werden eine Datei, wenn diese Datei bereits existiert. Bei D: \ script \ filter.ps1: 44 Zeichen: 16 + Rename-Item <<<< -NeuName { + CategoryInfo: WriteError: (D: \ Skript \ Test \ 1 \ readme_first.txt: String) [ Umbenennen-Element], IOException + FullyQualifiedErrorId: RenameItemIOError, Microsoft.PowerShell.Commands.RenameItemCommand –

0

Brauchen Sie mehr Informationen über das gewünschte Verhalten teilen einstellen Standort zuerst.

Set-Location -Path <path to files> 

Danach geht alles richtig.

Verwandte Themen