miyamoto
Goto Top

Powershell Rename-Item

Hallo alle zusammen

Ich möchte gerne mit Hilfe der Windows Powershell eine Datei umbenennen.


Wenn ich nun folgende Datei umbenennen möchte
123456789[1001].txt 
zu
1234567891001.txt
mit dem Befehl
Rename-Item '.\123456789[1001].txt' -NewName '.\123456789-1001.txt'  
Bekomme ich folgende Fehlermeldung:
Rename-Item : Das Umbenennen ist nicht möglich, da das Element unter ".\123456789[1001].txt" nicht vorhanden ist.
Bei Zeile:1 Zeichen:12
+ Rename-Item <<<<  '.\123456789[1001].txt' -NewName '.\123456789-1001.txt'
    + CategoryInfo          : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
    + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

Den fiel mir ein das ich die Klammern ja maskieren muss und habe folgendes gemacht:
Rename-Item '.\123456789`[1001`].txt' -NewName '.\123456789-1001.txt'  
und bekam dann folgende Fehlermeldung:
Rename-Item : Ein Objekt im angegebenen Pfad "F:\123456789`[1001`].txt" ist nicht vorhanden.
Bei Zeile:1 Zeichen:12
+ Rename-Item <<<<  '.\123456789`[1001`].txt' -NewName '.\123456789-1001.txt'
    + CategoryInfo          : InvalidArgument: (:) [Rename-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RenameItemCommand

Meine Frage ist nun, wie kann ich die Datei umbenennen mit der Powershell???
Ich würde mich freuen wenn es eine andere lösung geben würde als mit Move-Item.


Gruß Miyamoto

Content-ID: 150486

Url: https://administrator.de/forum/powershell-rename-item-150486.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

pobere
pobere 07.09.2010 um 11:10:09 Uhr
Goto Top
Versuch mal mit

Rename-Item .\123456789[1001].txt .\123456789-1001.txt
Miyamoto
Miyamoto 07.09.2010 um 11:17:19 Uhr
Goto Top
Hi,
geht leider auch nicht

Gruß Miyamoto
H41mSh1C0R
H41mSh1C0R 07.09.2010 um 11:52:30 Uhr
Goto Top
Rename-Item pfad\datei.endung pfad\datei_new.endung

wenn das rename-item cmdlet ausgeführt wird, wenn die shell im richtigen Verzeichnis steht kannste "pfad\" weglassen

wenn du nun aber ".\" statt einen absoluten "pfad\" davor setzt musst du auch sicher stellen das die Datei sich da(".\") auch befindet, wenn nicht bekommst du den obrigen Fehler.
Karo
Karo 07.09.2010 um 11:59:40 Uhr
Goto Top
Hi,

meines wissens nur per

move-item -literalpath '123456789[1001].txt' -destination '1234567891001.txt'

ist aber irgendwie dasselbe ... face-wink

Karo
Miyamoto
Miyamoto 07.09.2010 um 12:10:28 Uhr
Goto Top
Hi,
ich bin mir zu 100% sicher das die Datei da ist, schließlich habe ich sie da ja auch hin gepackt.
Und ja ich befinde mich gerade mit der Command-Line in dem Verzeichnis, des wegen gebe ich auch nicht den absoluten Pfad an.


Gruß Miyamoto
Karo
Karo 07.09.2010 um 12:48:36 Uhr
Goto Top
siehe mein andrer Post von 11:59
Miyamoto
Miyamoto 07.09.2010 um 13:09:32 Uhr
Goto Top
Hi,
deinen Beitrag hatte ich schon gesehen, wollte aber gerne eine andere Lösung als mit move-item
Wenn es schon eine Befehl gibt der zum umbenenne da ist. den muss es doch auch irgend wie damit gehen.

Gruß Miyamoto
Karo
Karo 07.09.2010 um 13:17:15 Uhr
Goto Top
nö, geht wohl auch 'irgendwie' nicht face-wink da -literalpath das entscheidende Kriterium und es bei rename-item einfach nicht vorhanden ist.
Such mal nach rename-item und brackets, da haben sich schon andere versucht.

Karo
digital-nervous-system
digital-nervous-system 07.09.2010 um 13:23:21 Uhr
Goto Top
genau, die brackets sind definitiv das Problem, sowas sollte man in Dateinamen tunlichst vermeiden ;)
Wenn es nur Textfiles sind, könntest du als workaround einfach neue files erzeugen und das alte löschen, also z.B.

cat '.\123456789`[1001`].txt' | Out-File '.\1234567891001.txt';Remove-Item '.\123456789`[1001`].txt'  


Gruß
Jürgen
digital-nervous-system
digital-nervous-system 07.09.2010 um 13:34:30 Uhr
Goto Top
oder einfach so :D

Move-Item '.\123456789`[1001`].txt' '.\1234567891001.txt'  

Gruß
Jürgen
Miyamoto
Miyamoto 07.09.2010 um 13:35:08 Uhr
Goto Top
Hi,
es sind leider nicht nur txt Dateien.
Den muss ich es wohl mit move-item machen.

Da müssen die Entwickler von der Powershell wohl noch mal ein bisschen nacharbeiten face-smile

Gruß Miyamoto
Miyamoto
Miyamoto 07.09.2010 um 13:40:33 Uhr
Goto Top
Das hatte ich noch nicht ausprobiert.
Was ich aber erstaunlich finde wenn man den Parameter "NewName" weg lässt das es dann geht und wenn der Parameter da ist den nicht.

Ich Danke euch für eure Bemühungen

Gruß Miyamoto