2016-08-05 24 views
1

Ich versuche xcopy mit subprocess aufrufen, die Bat-Befehl gleich sein wird.Aufruf xcopy mit Parametern?

Jedes Mal bekomme ich Fehler: "ungültige Anzahl von Parametern" oder "Datei nicht gefunden".

Wie kann ich das tun?

PYTHON

subprocess.call([ 
      "xcopy", 
      str(C:\appFolder\appFile.txt), 
      str(F:\appFolder\appFile.txt), 
      "/s /y /q" 
     ]) 

CMD

xcopy "C:\appFolder\appFile.txt" "F:\appFolder\appFile.txt" /s /y /q >nul 
+0

Sie benötigen um beide Pfadzeichenfolgen auf eine dieser Arten anzugeben: 'r ' – martineau

+0

Ich bekomme Pfade von der Datei Zeile für Zeile wie "Ordner \ 0055338f6552879f.txt" Wie kann ich es entkommen, wenn der Pfad in der Variablen ist? –

+0

Ein Fehler über eine ungültige Anzahl von Parametern ergibt sich aus der Verwendung von Schrägstrich anstelle von umgekehrten Schrägstrich im Pfad oder ohne Verwendung von Anführungszeichen. Außerdem fragt xcopy möglicherweise ab, ob das Ziel ein Dateiname oder ein Verzeichnisname ist. Um dies zu vermeiden, können Sie dem Zielnamen ein "*" hinzufügen. Zum Beispiel: 'call ('xcopy.exe"% s ""% s * "/ y/q'% (os.pfad.normpfad (src), os.pfad.normpfad (dst))). – eryksun

Antwort

0

Können Sie etwas ähnliches wie dies tun, indem stattdessen sys und env cmds mit: -

import sys,os 
PATHTOFILE1="Some_path" 
PATHTOFILE2="some other path" 
os.environ['PATHTOFILE1'] = PATHTOFILE1 
os.environ['PATHTOFILE2'] = PATHTOFILE2 
os.system('xcopy "$PATHTOFILE1" "$PATHTOFILE2" /s /y /q >nul') 
+0

"$ PATHTOFILE1 NICHT FOUD" –