Python - sous-processus - Comment appeler une canalisation de commande dans Windows?

Comment puis-je exécuter cette commande avec des sous-processus?

J'ai essayé:

proc = subprocess.Popen(
    '''ECHO bosco|"C:\Program Files\GNU\GnuPG\gpg.exe" --batch --passphrase-fd 0 --output "c:\docume~1\usi\locals~1\temp\tmptlbxka.txt" --decrypt "test.txt.gpg"''',
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
   stderr=subprocess.STDOUT,
)
stdout_value, stderr_value = proc.communicate()

mais j'ai reçu:

Traceback (most recent call last):
...
  File "C:\Python24\lib\subprocess.py", line 542, in __init__
    errread, errwrite)
  File "C:\Python24\lib\subprocess.py", line 706, in _execute_child
    startupinfo)
WindowsError: [Errno 2] The system cannot find the file specified

Choses que j'ai remarqué:

  1. L'exécution de la commande sur le windows
    la console fonctionne très bien.
  2. Si je supprime le
    ECHO bosco| partie, il fonctionne très bien la
    le popen l'appel ci-dessus. Donc je pense que
    ce problème est lié à l'écho ou
    |.
  • Ne que ligne complète en fait le travail lorsque vous exécutez dans la console Windows? WindowsError suggère que le problème n'est pas de votre code Python, mais la commande à exécuter.
  • Oui, il fonctionne à partir de windows dos de la console.
InformationsquelleAutor Greg | 2009-06-25