2016-08-05 8 views
1

私はsubprocessxcopyと呼ぶつもりです。これは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 ' – martineau

+0

imは "folder \ 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" –

関連する問題