David.kw 0 Geschrieben 8. Oktober 2018 Melden Teilen Geschrieben 8. Oktober 2018 (bearbeitet) Ich habe hier einen Ordner in dem mehrere Unterordner liegen In die Unterordner muss ein neuer Ordner mit dem Name des Ordners der oberen Ebene und noch ein Zusatz setzt sich wie folgt zusammen: https://abload.de/image.php?img=unbenanefefefntwidxu.jpg https://abload.de/image.php?img=55-ggfk2.jpg in jeden dieser Artikelordner müsste jetzt ein neuer Ordner automatisch hinzugefügt werden 55-33000x_qr_code wie könnte ich das bewerkstelligen edit: Wo liegt hier der Fehler? Set fso = CreateObject("Scripting.FileSystemObject") Set WshShell = CreateObject("WScript.Shell") verteiler = "C:\verteiler\Wärmezähler" Msgbox verteiler If Not fso.FolderExists(verteiler) Then Msgbox "Ordner existiert nicht!" WScript.Quit End If handleFolder verteiler Sub handleFolder(ordnerPfad) Set fsoFolder = fso.GetFolder(ordnerPfad) For Each subfolder In fsoFolder.SubFolders handleFolder subfolder.path Next If (inStr(ordnerPfad, "_Bild") > 0) Then neuerOrdner = Replace(ordnerPfad, "_Bild", "_QrCode") If Not fso.FolderExists(neuerOrdner) Then fso.CreateFolder neuerOrdner End If End If End Sub bearbeitet 8. Oktober 2018 von David.kw Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 8. Oktober 2018 Melden Teilen Geschrieben 8. Oktober 2018 Nutze Powershell. Kannst du einmal ein Beispiel nennen ohne Bilder, welche Ordner erstellt werden müssen und welcher Teil flexibel ist? Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 vor 11 Stunden schrieb Dukel: Nutze Powershell. Kannst du einmal ein Beispiel nennen ohne Bilder, welche Ordner erstellt werden müssen und welcher Teil flexibel ist? Die Ordnerstruktur ist etwas kompliziert aufgebaut. Einige haben eindeutige Namen und andere Oberordner wiederum nenne sich zb 6.Verteilerschränke 60-0x80xx das x steht hier für Heizkreise und andere Variablen( mehrere Artikel in einem Ordner ) .Wurde so gemacht um die Struktur klein zu halten. 60-0x85xx_Bild Die Struktur hat einen Umfang von 41. Oberordnern und ca 5895 Artikeln. Und in jeden Artikelordner muss ein Ordner xxxx_qr_Code und anschließend der jeweils erstelle qr Code in diesen Order ( Liegt als .png vor. Zweiter step) Ich habe mich hier an den letzten Unterordnern orientiert, denn dort kommt zb immer ein 60-0x85xx_Bild vor. Man müsste also dem Code nur sagen, schiebe überall einen Ordner mit Name des Überordners und _Bild rein. ( Code aus dem ersten Beitrag ist nicht von mir) Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 60-0x80xx ist dann der QR Code? D.h. du legst einen neuen Artikel mit einem bestimmten QR Code an und dann soll die Ordnerstruktur erstellt werden? Soll nur der Ordner Bild angelegt werden? Wer legt die anderen Ordner an (und wieso kann derjenige nicht den Bild Ordner anlegen?)? Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 vor 29 Minuten schrieb Dukel: 60-0x80xx ist dann der QR Code? D.h. du legst einen neuen Artikel mit einem bestimmten QR Code an und dann soll die Ordnerstruktur erstellt werden? Soll nur der Ordner Bild angelegt werden? Wer legt die anderen Ordner an (und wieso kann derjenige nicht den Bild Ordner anlegen?)? Der QR Code heisst dann in diesem Fall: 60-0x85xx_qr_code.png Mir geht es primär aber erstmal um den Ordner. Die Ordner sind alle schon angelegt. Ich möchte aber nicht für 5985 Artikel einen neuen Ordner händisch anlegen Ja,es muss nur der Ordner xxxxx_qr_Code in jeden Unterarikelordner rein. Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 (bearbeitet) Mit Powershell ist das schnell machbar. $root = 'C:\verteiler' Get-ChildItem $root | %{ # Hier ist dann z.B. C:\verteiler\Wärmezähler foreach($folder in (Get-Childitem $_.FullName)){ # Hier ist dann z.B. C:\verteiler\Wärmezähler\60-0x85xx ; Hier ggf. weitere Ebenen einfügen $newFolder = "$($folder.Directory)\$($folder.Name)_qr_code" New-Item -Type Directory -Path } } bearbeitet 9. Oktober 2018 von Dukel Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 (bearbeitet) vor 14 Minuten schrieb Dukel: Mit Powershell ist das schnell machbar. $root = 'C:\verteiler' Get-ChildItem $root | %{ # Hier ist dann z.B. C:\verteiler\Wärmezähler foreach($folder in (Get-Childitem $_.FullName)){ # Hier ist dann z.B. C:\verteiler\Wärmezähler\60-0x85xx ; Hier ggf. weitere Ebenen einfügen $newFolder = "$($folder.Directory)\$($folder.Name)_qr_code" New-Item -Type Directory -Path } } hier wäre zb ein Testordner mit den passenden Artikeln Da müsste in jeden Artikel der qr code Ordner mit richtigem Name https://abload.de/image.php?img=6.rkcgk.jpg ew-Item : Fehlendes Argument für den Parameter "Path". Geben Sie einen Parameter vom Typ "System.String[]" an, und versuchen Sie es erneut. In Zeile:6 Zeichen:30 + New-Item -Type Directory -Path + ~~~~~ + CategoryInfo : InvalidArgument: (:) [New-Item], ParameterBindingException + FullyQualifiedErrorId : MissingArgument,Microsoft.PowerShell.Commands.NewItemCommand Zitat $root = 'C:\verteiler' Get-ChildItem $root | %{ # Hier ist dann z.B. C:\verteiler\Wärmezähler foreach($folder in (Get-Childitem $_.FullName)){ # C:\verteiler\Wärmezähler\55-330003 ; $newFolder = "$($folder.Directory)\$($folder.Name)_qr_code" New-Item -Type Directory -Path } } bearbeitet 9. Oktober 2018 von David.kw Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 Erstelle einmal eine Beispiel Struktur (oder kopiere ein paar Ordner) und teste mein Script. Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 vor 3 Minuten schrieb Dukel: Erstelle einmal eine Beispiel Struktur (oder kopiere ein paar Ordner) und teste mein Script. habe ja Beispiel Ordner da und den passenden Pfad eingefügt. Bringt leider die oben beschrieben Fehlermeldung Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 Welche Fehlermeldung? Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 Gerade eben schrieb Dukel: Welche Fehlermeldung? new-Item : Fehlendes Argument für den Parameter "Path". Geben Sie einen Parameter vom Typ "System.String[]" an, und versuchen Sie es erneut. In Zeile:6 Zeichen:30 + New-Item -Type Directory -Path + ~~~~~ + CategoryInfo : InvalidArgument: (:) [New-Item], ParameterBindingException + FullyQualifiedErrorId : MissingArgument,Microsoft.PowerShell.Commands.NewItemCommand Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 Stimmt. Mein Fehler: New-Item -Type Directory -Path $newFolder Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 (bearbeitet) vor 2 Minuten schrieb Dukel: Stimmt. Mein Fehler: New-Item -Type Directory -Path $newFolder Fehler d----- 09.10.2018 09:54 55-330023_qr_code C:\verteiler\Wärmezähler\55-330003 : Die Benennung "C:\verteiler\Wärmezähler\55-330003" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. In Zeile:5 Zeichen:51 + ... er in (Get-Childitem $_.FullName)){C:\verteiler\Wärmezähler\55-330003 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\verteiler\Wärmezähler\55-330003:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException er hat alle qr Ordner ins root geschrieben, also auf C:\ bearbeitet 9. Oktober 2018 von David.kw Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Oktober 2018 Melden Teilen Geschrieben 9. Oktober 2018 Mach das mal ohne die Kommentare. $root = 'C:\verteiler' Get-ChildItem $root | %{ foreach($folder in (Get-Childitem $_.FullName)){ $newFolder = "$($folder.Directory)\$($folder.Name)_qr_code" New-Item -Type Directory -Path $newFolder } } Zitieren Link zu diesem Kommentar
David.kw 0 Geschrieben 9. Oktober 2018 Autor Melden Teilen Geschrieben 9. Oktober 2018 vor 3 Minuten schrieb Dukel: Mach das mal ohne die Kommentare. $root = 'C:\verteiler' Get-ChildItem $root | %{ foreach($folder in (Get-Childitem $_.FullName)){ $newFolder = "$($folder.Directory)\$($folder.Name)_qr_code" New-Item -Type Directory -Path $newFolder } } geht soweit, nur kopiert er die erstellen Ordner auf c:\ und nicht in die enstprechenden Ordner. Haben wir uns da missverstanden? :) 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.