Eledris 0 Geschrieben 10. Mai 2020 Melden Teilen Geschrieben 10. Mai 2020 (bearbeitet) Hallo miteinander, ich hoffe, dass ich hier jemanden finde, der mir etwas auf den Weg helfen kann oder mir sagen kann, wo ich am besten weitersuche. Ich habe etwas über 1.000 Dateien, die ich vom Dateinamen her umbenennen will. Im Moment beginnen die Artikel mit einer 6 stelligen Artikelnummer, gefolgt von einem _ Unterstrich und dann einer beliebigen Bezeichnung, +Dateiendung (.jpg). Ziel ist es, die Dateien so umzubenennen, dass der hintere Teil verändert will. Abschneiden kann ich ihn schon mit folgendem Befehl: Get-ChildItem *.jpg | Rename-Item -NewName {$_.Name.Substring(0,6)+ $_.Extension} Zusätzlich habe ich eine Exceltabelle, die auf dieser 6-stelligen Artikelnummer basiert (Spalte A enthält also z.B. alle Artikelnummern) und Spalte B hat dann die zukünftige Dateibezeichnung. Vorgestellt habe ich mir, erst den o.g. Befehl zu verwenden, damit ist dann der Dateiname (-Endung) auch mein Suchbegriff in der Tabelle. Aber wie baue ich nun ein Script, dem ich sagen kann: Schau in diese Tabelle und Suche nach dem Dateinamen in Spalte A und wenn Du den gefunden hast, dann nimm die Bezeichnung aus Spalte B und baue den neuen Dateinamen auf nach dem Schema: Dateiname ALT_BezeichnungausSpalteB.Dateiendung. Ich werde ja wahrscheinlich eine Schleife einbauen müssen, die das Ergebnis vom Get-Childitem speichert und einer Variablen und dann nach dieser die Tabelle durchsucht und das Ergebnis mir in eine andere Variable nimmt. Aber wie komme ich mit der Powershell in meine Tabelle? Danke für Eure Hilfe ELE bearbeitet 10. Mai 2020 von Eledris Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 10. Mai 2020 Melden Teilen Geschrieben 10. Mai 2020 (bearbeitet) vor einer Stunde schrieb Eledris: Ich werde ja wahrscheinlich eine Schleife einbauen müssen, die das Ergebnis vom Get-Childitem speichert und einer Variablen und dann nach dieser die Tabelle durchsucht und das Ergebnis mir in eine andere Variable nimmt. Aber wie komme ich mit der Powershell in meine Tabelle? ELE, willkommen im MCSE-Board. Die Schleife ist schon mal ne gute Idee .... Deine Excel-Liste ist hoffentlich eine CSV-Datei. Wenn nicht, wäre es hilfreich, wenn Du sie in eine CSV-Datei umwandlest. Damit kann Powershell ganz problemlos umgehen. Für den Anfang solltest Du Dir die cmdlets Import-Csv, Forach-Object und die Hilfe für about_if und vielleicht about_foreach, about_comparison_operators und about_split. Du solltest immer die komplette HIlfe lesen - inklusive der Beispiele - um zu lernen, wie man die cmdlets benutzt. bearbeitet 10. Mai 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
Eledris 0 Geschrieben 10. Mai 2020 Autor Melden Teilen Geschrieben 10. Mai 2020 Hallo BOfH_666, vielen, vielen Dank für diese Tipps. Ich habe alle Artikel durchgelesen und bin am Ende mit einem ganz einfachen Weg "durchgekommen". Das import-csv cmdlets war entscheidend :) Zudem konnte ich durch die erste Codezeile aus meinem Ursprungspost ja auch sicherstellen, dass die Dateien durch diese Ausführung schon exakt wie die Artikelnummern heissen. So konnte ich in Excel einfach eine Zelle mit dem gesamten neuen Dateinamen (einschließlich Endung) neben den alten Dateinamen per Formel einsetzen und hatte mein Ergebnis. Gelöst habe ich es, da es eben nur einmal laufen muss dann ganz statisch und der Aufwand sich damit zu beschäftigen ist im Vergleich zur manuellen Arbeit alles umzubenennen immernoch ein riesen Zeitgewinn. $path = 'C:\test' $TargetDir = 'C:\test' Import-Csv c:\test\testtable.csv -delimiter ";"| Foreach-Object { $Src = Join-Path -Path $TargetDir -ChildPath $_.dateinameALT $Dst = Join-Path -Path $TargetDir -ChildPath $_.dateinameNEU Rename-Item -Path $Src -NewName $Dst } Nochmal, vielen herzlichen Dank! Ich glaube wir hören uns hier jetzt öfter :) Viele Grüße Ele Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 10. Mai 2020 Melden Teilen Geschrieben 10. Mai 2020 (bearbeitet) vor einer Stunde schrieb Eledris: vielen, vielen Dank für diese Tipps. Ich habe alle Artikel durchgelesen und bin am Ende mit einem ganz einfachen Weg "durchgekommen". Wow ... Respekt. Das bekommen nicht viele Anfänger so flott hin. ... und danke für's Teilen. Zitat Nochmal, vielen herzlichen Dank! Ich glaube wir hören uns hier jetzt öfter :) Uuiiii .... hat da einer Blut geleckt? ... super ... immer gern. bearbeitet 10. Mai 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.