plastikjoe 10 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 (bearbeitet) Hallo Zusammen, ich habe ein kleines Problem und komme nicht weiter. Ein Ordner enthält unzählige zip Dateien mit dieser Syntax : alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip Jetzt muss ich Oderner erstellen, in die wiederrum die zip Dateien gemovet werden sollen. Die Ordner müssen aber so sein: alf_hugo_eva_o_o_o_b1_8_00_x12_erste . Was ich bisher habe : For /F %a in ('Dir /B *config.zip') Do echo md %a Ich bekomme das _config.zip nicht weg. Kann mir bitte jemand helfen. tausend Dank bearbeitet 17. Oktober 2017 von plastikjoe Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 Nimm Powershell. Damit hast du mehr Spaß. Zitieren Link zu diesem Kommentar
plastikjoe 10 Geschrieben 17. Oktober 2017 Autor Melden Teilen Geschrieben 17. Oktober 2017 Gute Idee, wie gehts in Powershell? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 Es kommt darauf was genau du willst. Alles ab dem letzten "_" abschneiden oder immer nur den String "_config"? Zitieren Link zu diesem Kommentar
plastikjoe 10 Geschrieben 17. Oktober 2017 Autor Melden Teilen Geschrieben 17. Oktober 2017 (bearbeitet) am besten ab dem letzten _ soll alles weg. bearbeitet 17. Oktober 2017 von plastikjoe Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 (bearbeitet) Ohne Code posten zu wollen, Du mußt von Links bis zum ersten _ zählen, +1 und das ist deine neue Länge des Dateinamen. bearbeitet 17. Oktober 2017 von Sunny61 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 Auslesen aller Dateien mit entsprechenden String: Get-ChildItem -Filter *config.zip Name: (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name Stelle des letzten "_": (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.LastIndexOf('_')36 Abgeschnittener Name: (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.Substring(0, (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.LastIndexOf('_')) Alternativ: (Get-Item .\alf_hugo_eva_o_o_o_b1_8_00_x12_erste_config.zip).Name.Substring(0, 36) Alles noch zusammenbauen: foreach($file in (Get-ChildItem -Filter *_config.zip)){ New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_')) } 2 Zitieren Link zu diesem Kommentar
plastikjoe 10 Geschrieben 17. Oktober 2017 Autor Melden Teilen Geschrieben 17. Oktober 2017 Super, Danke das funktioniert schon mal. Wie kopiert man nun elegant noch diese zips in den jeweiligen Ordner? Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 17. Oktober 2017 Melden Teilen Geschrieben 17. Oktober 2017 Ebenfalls mit der Powershell. Du darfst auch mitarbeiten. http://powershellpraxis.de/index.php/dateien-und-ordner#2.1.2%20einfache%20Operationen%20mit%20Dateien%20und%20Verzeichnissen 1 Zitieren Link zu diesem Kommentar
plastikjoe 10 Geschrieben 18. Oktober 2017 Autor Melden Teilen Geschrieben 18. Oktober 2017 Hab mich mal selbst versucht. Habe es bloß nicht zusammen hinbekommen, also Ordner erstellen und anschließend moven. Vielleicht hat ja noch jemand ein Tipp, wie ich die zusammen packe? foreach($file in (Get-ChildItem -Filter *_config.zip)){ New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_')) } foreach($file in (Get-ChildItem -Filter *_config.zip)){ Move-Item (Get-Item $file) -destination (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_')) } Vielen Dank an alle! Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 18. Oktober 2017 Melden Teilen Geschrieben 18. Oktober 2017 Einfach das Move Item in die Foreach Schleife hinzufügen. Später schaust du dir mal die Powershell Grundlagen an. foreach($file in (Get-ChildItem -Filter *_config.zip)){ New-Item -Type Directory -Path (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_')) Move-Item (Get-Item $file) -destination (Get-Item $file).Name.Substring(0, (Get-Item $file).Name.LastIndexOf('_')) } 1 Zitieren Link zu diesem Kommentar
Beste Lösung plastikjoe 10 Geschrieben 19. Oktober 2017 Autor Beste Lösung Melden Teilen Geschrieben 19. Oktober 2017 Jo, mach ich, danke Euch. 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.