BenoitM
Cadet 3rd Year
- Registriert
- März 2012
- Beiträge
- 44
Hallo,
ich bin auf der Suche nach dem Fehler in meinem PowerShell-Script bzw. nach einer alternativen Lösung für das Umbenennen von .log und .txt Dateien nach dem bestimmten Schema - von 00001 beginnend (5-stellig) - bis keine .log oder .txt Dateien mehr in diesem Verzeichnis sind.
Also alle .log und .txt Dateien innerhalb eines Verzeichnisses - zuvor sortiert - von 00001 beginnend, fortlaufend umbenennen.
Die Verzeichnis bzw. Dateistruktur sieht ca. wie folgt aus:
C:\PFAD_ÜBERORDER\VerzeichnisN+1\Verzeichnis_0001\Ungewünschter_Dateiname(8794563).txt
C:\PFAD_ÜBERORDER\VerzeichnisN+1\Verzeichnis_0002\Ungewünschter_Dateiname(1235474567).log
etc.
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0001\Ungewünschter_Dateiname(190283).txt
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0002\Ungewünschter_Dateiname(89180).log
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0003\Ungewünschter_Dateiname(901901190210).log
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0004\Ungewünschter_Dateiname(901901190210).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0001\Ungewünschter_Dateiname(190283).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0002\Ungewünschter_Dateiname(190283).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0003\Ungewünschter_Dateiname(190283).log
etc.
usw. mit VerzeichnisN+4; Verzeichnis N+5; etc.
Statisch in dieser Aufstellung ist daher der der Teil C:\PFAD_ÜBERORDNER
Die Verzeichnisname (VerzeichnisN+1; usw.) sind unterschiedlich. Dies sollte jedoch ohnehin irrelevant sein, da die Rename-Funktion nur innerhalb eines Ordner greifen soll.
Mein Ansatz für dieses Problem sieht bisher so aus:
Gibt folgende Fehlermeldung:
Habt ihr eine Lösung?
ich bin auf der Suche nach dem Fehler in meinem PowerShell-Script bzw. nach einer alternativen Lösung für das Umbenennen von .log und .txt Dateien nach dem bestimmten Schema - von 00001 beginnend (5-stellig) - bis keine .log oder .txt Dateien mehr in diesem Verzeichnis sind.
Also alle .log und .txt Dateien innerhalb eines Verzeichnisses - zuvor sortiert - von 00001 beginnend, fortlaufend umbenennen.
Die Verzeichnis bzw. Dateistruktur sieht ca. wie folgt aus:
C:\PFAD_ÜBERORDER\VerzeichnisN+1\Verzeichnis_0001\Ungewünschter_Dateiname(8794563).txt
C:\PFAD_ÜBERORDER\VerzeichnisN+1\Verzeichnis_0002\Ungewünschter_Dateiname(1235474567).log
etc.
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0001\Ungewünschter_Dateiname(190283).txt
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0002\Ungewünschter_Dateiname(89180).log
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0003\Ungewünschter_Dateiname(901901190210).log
C:\PFAD_ÜBERORDER\VerzeichnisN+2\Verzeichnis_0004\Ungewünschter_Dateiname(901901190210).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0001\Ungewünschter_Dateiname(190283).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0002\Ungewünschter_Dateiname(190283).log
C:\PFAD_ÜBERORDER\VerzeichnisN+3\Verzeichnis_0003\Ungewünschter_Dateiname(190283).log
etc.
usw. mit VerzeichnisN+4; Verzeichnis N+5; etc.
Statisch in dieser Aufstellung ist daher der der Teil C:\PFAD_ÜBERORDNER
Die Verzeichnisname (VerzeichnisN+1; usw.) sind unterschiedlich. Dies sollte jedoch ohnehin irrelevant sein, da die Rename-Funktion nur innerhalb eines Ordner greifen soll.
Mein Ansatz für dieses Problem sieht bisher so aus:
Code:
$path = "C:\PFAD_ÜBERORDNER" # Quellverzeichnis
$DIRlist = gci -path $path -recurse -type directory
$list = gci -path $path -recurse | ? {$_.extension -eq ".log";".txt"}
$name = "{0:D5}" -f ($runs + 1)
Rename-Item ($list + $name) -NewName $name
Gibt folgende Fehlermeldung:
Code:
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.
PS H:\> $path = "C:\PFAD_ÜBERORDNER"
# Quellverzeichnis
PS H:\> $DIRlist = gci -path $path -recurse -exclude *.log, *.txt
PS H:\> $list = gci -path $path -recurse | ? {$_.extension -eq ".txt";".log"}
PS H:\> $name = "{0:D5}" -f ($runs + 1)
PS H:\>
PS H:\> Rename-Item ($list + $name) -NewName $name
[COLOR="#FF0000"]Rename-Item : Cannot convert 'System.Object[]' to the type 'System.String' requ
ired by parameter 'Path'. Specified method is not supported.
At line:1 char:12
+ Rename-Item <<<< ($list + $name) -NewName $name
+ CategoryInfo : InvalidArgument: (:) [Rename-Item], ParameterBin
dingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Comma
nds.RenameItemCommand[/COLOR]
PS H:\>
Habt ihr eine Lösung?