1

このスクリプトで何が起こっているのか完全にはわかりませんが、基本的にはこれが私がやろうとしていることです:

doskey コマンドを使用していくつかのマクロを定義する Windows バッチ スクリプトがあります。Python では、これらのマクロのいずれかを呼び出したいと考えています。あるシステムではこれを実行できますが、別のシステムでは有効なコマンドではないと表示されます。それでも、両方のシステムで「doskey /macros」を呼び出すと、すべてのマクロが適切に定義されていることがわかります。

Pythonを介して、サブプロセス呼び出しコマンドを使用してマクロを呼び出そうとしています:

from subprocess import call
call( "some_macro", shell=True )

前述のように、これは一方のシステムでは問題なく機能しますが、もう一方のシステムでは機能しません (どちらも Windows 7 64 ビットを実行しています)。

マクロを呼び出そうとするのではなく、Pythonで直接呼び出しを行うことでこれを回避できることは承知していますが、Pythonが取得するシェルコンテキストにマクロが適切に定義されているように見えるにもかかわらず、これが機能しない理由を理解したいと思います( doskey /macro コマンドを実行することで観察されます)。

何かご意見は?

4

1 に答える 1

0

その答えは、Windows シェルの劣った性質を受け入れ、代わりに私のコマンドを Python に埋め込むことでした。

まさに私が望んでいたものではありません。

于 2012-10-01T21:36:08.807 に答える