2016-08-05 47 views
1

我正在嘗試撥打xcopysubprocess,這將等於bat命令。用參數調用xcopy?

每當我收到錯誤:「無效的參數數量」或「找不到文件」。

我該怎麼做?

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

您需要指定兩種路徑字符串:'r「 :\ appFolder \ appFile.txt 「'或'」 С:\\ \\ appFolder appFile.txt 「'或'」 С:/appFolder/appFile.txt「'。 – martineau

+0

即時通過像文件夾\文件夾\ 0055338f6552879f.txt「 從文件行得到pathes當路徑在變量中,我怎麼能逃脫它? –

+0

有關無效參數數量的錯誤來自於在路徑中使用斜槓而不是反斜槓或不使用引號。此外,xcopy可能會提示詢問目標是文件名還是目錄名。爲了避免這種情況,您可以將「*」附加到目標名稱。例如:'call('xcopy.exe「%s」「%s *」/ y/q'%(os.path.normpath(src),os.path.normpath(dst)))''。 – eryksun

回答

0

你可以做一些與此類似,通過使用sys和ENV CMDS來代替: -

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 NOT FOUD」 –