2017-11-13 16 views
2

引用") TEST.BAT 後とが最初SYSTEM_CALL()に無効な構文があると言っています。 。これをどうすれば解決できますか?私は間違って何もしていないようです。 (私はのPythonに新しいいます。)私はこれらの引用符で間違っていますか?

import os 

import subprocess 

def system_call(command): 

r = subprocess.call("cmd.exe /K " + "%s" % command,shell=False) 
print (r) 

system_call(r 'echo “@ECHO OFF\nECHO.\nECHO\n This is a batch file\nECHO.\nPAUSE\nCLS\nEXIT” > C:\Users\User\Desktop\test.bat ') 

system_call('cd C:\Users\User\Desktop\ ') 

system_call('test') 
+0

1単語: "smart quotes"。待って、それは2つの言葉です:-)しかし、なぜPythonが完全に適切なファイルI/Oを持っているときに 'subprocess ... echo'を呼び出してファイルを作成しますか?いずれにしても、サブプロセス内の 'cd 'は、次のサブプロセスコールに引き継がれる可能性は低い。 – paxdiablo

答えて

1

コードのこのセクションを囲む引用符を変更してみてください、

“@ECHO OFF\nECHO.\nECHO\n This is a batch file\nECHO.\nPAUSE\nCLS\nEXIT” 

変更

"@ECHO OFF\nECHO.\nECHO\n This is a batch file\nECHO.\nPAUSE\nCLS\nEXIT" 

への通知方法を、元の引用符(あなたのコード)は、私がまっすぐで、ファンシーでない見積もりでそれらを置き換えたところで、彼らに曲線を持っています。私の経験では、派手なものは時には問題を引き起こすことがあります。

P.S.これはStack over flowの私の最初の答えです。だから私はそれを刺しています:)それが助けてくれることを望みます。

+0

私は引用符を変更しましたが、うまくいきませんでした。 –

+0

's /私の経験で/毎回/' :-) – paxdiablo

関連する問題