none
PowerShell - Automatisierter File Split RRS feed

  • Frage

  • Hallo,
    ich bräuchte eine kleine Hilfestellung betreffend einer Powershell automatisierung. 
    Ich habe eine Ordnerstruktur...

    Ordnerstruktur

    Mein Startpunkt ist M:\VERSIONS

    Ich möchte jetzt automatisiert alle Unterordner in "VERSIONS" durchgehen und 1) den Ordner "_splitted" anlegen und 2) alle Textdateien in den Unterordner in einem anderen Befehl aufrufen welcher mir die Files splitted. 

    Order Anlage von _splitted funktioniert mit 

    Get-ChildItem -Directory "M:\VERSIONS" | ForEach-Object {New-Item -ItemType directory -Path "$($_.FullName)" -Name "_splitted" }

    Jetzt möchte ich in dem Ordner in dem soeben der Ordner "splitted" angelegt wurde die Dateien auslesen und wieder mit ForEach-Object an den Split Befehl schicken mit dem Parameter der gefunden Datei UND dem aktuellen Ordner+"\_splitted".

    Wäre schön wenn jemand helfen könnte. 
    LG

    Michael


    greetings MikP

    Freitag, 20. Januar 2017 11:18

Antworten

  • > Get-ChildItem -Directory "M:\VERSIONS" | ForEach-Object {New-Item -ItemType directory -Path "$($_.FullName)" -Name "_splitted" }
     
    So etwas?
     
    Get-ChildItem -Directory "M:\VERSIONS" | ForEach-Object {
      $CurrFolder = $_
      New-Item -ItemType directory -Path "$($CurrFolder.FullName)" -Name "_splitted"
      Get-ChildItem -File -Path $($CurrFolder.FullName) | Foreach-Object {
        $CurrFile = $_
        # Tuwas :-)
      }
    }
     
    • Als Antwort markiert MikP Montag, 23. Januar 2017 07:02
    Freitag, 20. Januar 2017 14:54

Alle Antworten

  • > Get-ChildItem -Directory "M:\VERSIONS" | ForEach-Object {New-Item -ItemType directory -Path "$($_.FullName)" -Name "_splitted" }
     
    So etwas?
     
    Get-ChildItem -Directory "M:\VERSIONS" | ForEach-Object {
      $CurrFolder = $_
      New-Item -ItemType directory -Path "$($CurrFolder.FullName)" -Name "_splitted"
      Get-ChildItem -File -Path $($CurrFolder.FullName) | Foreach-Object {
        $CurrFile = $_
        # Tuwas :-)
      }
    }
     
    • Als Antwort markiert MikP Montag, 23. Januar 2017 07:02
    Freitag, 20. Januar 2017 14:54
  • GENAU so etwas!

    Vielen Dank. Ich verstehe zwar die Syntax von Powershell noch nicht ganz. zB. "$_" und "$($..." aber es wird schön langsam. 


    greetings MikP

    Montag, 23. Januar 2017 07:02
  • > Ich verstehe zwar die Syntax von Powershell noch nicht ganz. zB. "$_" und "$($..." aber es wird schön langsam.
     
    $_ ist in einer Foreach-Schleife das aktuelle Objekt.
     
    $() legt den Scope fest. Mit "$CurrFolder.FullName" würde Posh $CurrFolder auflösen und hängt dann den String .FullName an. Mit dem $() drum herum wird das besser :-)
     
    Montag, 23. Januar 2017 08:41