Jump to content

script zum erstellen von Unterordnern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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 von David.kw
Link zu diesem Kommentar
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)

 

Link zu diesem Kommentar
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.

 

 

Link zu diesem Kommentar

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 von Dukel
Link zu diesem Kommentar
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 von David.kw
Link zu diesem Kommentar
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

Link zu diesem Kommentar
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 von David.kw
Link zu diesem Kommentar
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? :)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...