Powershell: Aufruf robocopy mit Parameter
Hallo,
ich bin Powershell-Neuling und habe ein Problem mit der Übergabe von robocopy-Optionen in einer Variable:
...
$Options = "/COPYALL /R:0 /W:1""
robocopy.exe "\\$SrcHost\$SrcDir\" "$DstDir\" $Options /L /LOG:$LogPath
...
Problem dabei: Es gibt einen Syntax Fehler bei der Übergabe der Variable an robocopy.
Habe ich bei den Optionen nur $Options= "/COPYALL" stehen, funktioniert der Aufruf.
Nutze ich direkt die Optionen ohne die Variable, funktioniert der Aufruf ebenfalls.
Ich tippe mal, dass es Probleme mit mehreren Slashes innerhalb der Variable gibt.
"/COPYALL \/R:01 \W:1" funktioniert allerdings auch nicht...
Danke für einen Tipp!
BB,
Benson
ich bin Powershell-Neuling und habe ein Problem mit der Übergabe von robocopy-Optionen in einer Variable:
...
$Options = "/COPYALL /R:0 /W:1""
robocopy.exe "\\$SrcHost\$SrcDir\" "$DstDir\" $Options /L /LOG:$LogPath
...
Problem dabei: Es gibt einen Syntax Fehler bei der Übergabe der Variable an robocopy.
Habe ich bei den Optionen nur $Options= "/COPYALL" stehen, funktioniert der Aufruf.
Nutze ich direkt die Optionen ohne die Variable, funktioniert der Aufruf ebenfalls.
Ich tippe mal, dass es Probleme mit mehreren Slashes innerhalb der Variable gibt.
"/COPYALL \/R:01 \W:1" funktioniert allerdings auch nicht...
Danke für einen Tipp!
BB,
Benson
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 286921
Url: https://administrator.de/contentid/286921
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
1 Kommentar
Moin Benson,
das kommt daher das die PS mit der Variablen $options robocopy Quasi nur einen einzelnen Parameter mitgibt der so lautet '/COPYALL /R:01 /W:1' und einen solchen einzelnen Parameter gibt es nicht ! Das kannst du umgehen indem du die Parameter in ein Array schreibst
Beispiel:
oder die Variante start-process nimmst
Gruß jodel32
das kommt daher das die PS mit der Variablen $options robocopy Quasi nur einen einzelnen Parameter mitgibt der so lautet '/COPYALL /R:01 /W:1' und einen solchen einzelnen Parameter gibt es nicht ! Das kannst du umgehen indem du die Parameter in ein Array schreibst
Beispiel:
$options = @('/L','/COPYALL','/R:2','/W:2')
robocopy.exe 'C:\quelle' 'C:\ziel' $options
oder die Variante start-process nimmst
start-process 'robocopy.exe' -Argumentlist '"C:\Quelle" "C:\ziel" /L /COPYALL /R:01 /W:1' -Wait