none
PowerShell und Robocopy

    Frage

  • Hallo zusammen,

    ich bin gerade am verzweifeln. Ich versuche mittels PowerShell der robocopy.exe die Parameter zu übergeben, was aber nicht so ganz funktionieren will.

    Hier mein Skript:

    #robocopy config $source = "C:\Users\sandro.reiter\Desktop\1" $dest = "C:\Users\sandro.reiter\Desktop\2" $exclude = "C:\Users\sandro.reiter\Desktop\1\1 1\" $arg = "/E /FFT /R:0 /W:0 /NFL /NDL" $logfile_temp = "logtemp.txt" $logfile_static = "log.txt"

    #start robocopy if($exclude -notlike "") { robocopy $source $dest /XD $exclude $arg > $logfile_temp } else { robocopy $source $dest $arg > $logfile_temp }


    Ich habe hier 2 Probleme

    - wenn ich etwas in $exclude drin stehen habe, hängt Robocopy einen Teil von $arg mit an $exclude an:

    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Robustes Dateikopieren fr Windows                              
    -------------------------------------------------------------------------------
    
      Gestartet: Freitag, 19. Mai 2017 09:47:46
       Quelle : C:\Users\sandro.reiter\Desktop\1\
         Ziel : C:\Users\sandro.reiter\Desktop\2\
    
        Dateien : *.*
    	    
     Ausgeschl. Verzeichnisse: C:\Users\sandro.reiter\Desktop\1\1 1" /E
    	    
      Optionen: *.* /FFT /NDL /NFL /DCOPY:DA /COPY:DAT /R:0 /W:0 
    
    ------------------------------------------------------------------------------

    Steht nichts in $exclude drin, dann wird alles $arg mit Hochkommas übergeben, was ebenfalls einen Fehler verursacht

    -------------------------------------------------------------------------------
       ROBOCOPY     ::     Robustes Dateikopieren fr Windows                              
    -------------------------------------------------------------------------------
    
      Gestartet: Freitag, 19. Mai 2017 09:51:10
       Quelle - C:\Users\sandro.reiter\Desktop\1\
         Ziel - C:\Users\sandro.reiter\Desktop\2\
    
        Dateien : 
      Optionen: /DCOPY:DA /COPY:DAT /R:1000000 /W:30 
    
    ------------------------------------------------------------------------------
    
    FEHLER: Ungltiger Parameter #3 : "/E /FFT /R:0 /W:0 /NFL /NDL"
    
        Einfache Syntax :: ROBOCOPY Quelle Ziel /MIR
    
                 Quelle :: Quellverzeichnis (Laufwerk:\Pfad oder
                           \\Server\Freigabe\Pfad)
                   Ziel :: Zielverzeichnis (Laufwerk:\Pfad oder
                           \\Server\Freigabe\Pfad)
                   /MIR :: Spiegelt eine vollst„ndige Verzeichnisstruktur.
    
        Weitere Informationen erhalten Sie ber den Befehl "ROBOCOPY /?"
    
                                                              
    **** Der Befehl "/MIR" kann Dateien sowohl kopieren als auch L™SCHEN.

    Hilfe! :D

    Die Leerzeichen im Dateipfad lassen sich leider nicht ändern, daher muss es irgendwie so laufen. Im Produktivskript sollen dann natürlich mehrere ausgeschlossene Pfade angegeben werden.

    Ich danke für Tipps und Hilfe im Voraus.


    Freundliche Grüße

    Sandro
    MCSA: Windows Server 2012
    Fachinformatiker Fachrichtung Systemintegration (IHK, 07/2013)


    Freitag, 19. Mai 2017 07:55

Antworten

  • Ich weiß nicht ob es der richtige Weg war, so läuft es jetzt aber :)

    #robocopy config
    $source = "C:\Users\admin\Desktop\1\"
    $dest = "C:\Users\admin\Desktop\2\"
    $exclude = "C:\Users\admin\Desktop\1\1 1|C:\Users\admin\Desktop\1\Export Hilfsdaten|C:\Users\admin\Desktop\1\Export"
    $arg = "/E /FFT /R:0 /W:0 /NFL /NDL"
    $logfile_temp = "logtemp.txt"
    
    
    #start robocopy
    if($exclude -notlike "")
    {
        robocopy $source $dest $arg.Split(" ") /XD $exclude.Split("|") > $logfile_temp
    }
    else
    {
        robocopy $source $dest $arg.Split(" ") > $logfile_temp
    }


    Freundliche Grüße

    Sandro
    MCSA: Windows Server 2012
    Fachinformatiker Fachrichtung Systemintegration (IHK, 07/2013)

    • Als Antwort markiert SandroReiter Freitag, 19. Mai 2017 09:38
    Freitag, 19. Mai 2017 09:38