2017-01-18 68 views
0

私はいくつかの引数を取得し、abaqusで実行する必要があるpythonスクリプト(または関数)を作成しました。これをバッチファイルで実行したいと思います。私はバッチファイルで新しく、どのように私はabaqusによって別のパスでPythonスクリプトを実行できるか分からない。たとえば、PythonコードパスがD:\pythonscript\test.pyであるとします。バッチファイル経由でabaqus pythonスクリプトを実行していますか?

+0

実際にあなたのスクリプト内にwhatsが表示されている可能性があります。 – agentp

+0

これは、いくつかの変数を取得し、abaqusでいくつかの活動を行うPythonコードです。 – user44

答えて

0

これはうまくいくはずです。あなたのバージョンが最近のものだと思うので、Abaqusへのパスを更新する必要があります。

"C:\Abaqus\6.10-EF2\exec\abq610ef2.exe" cae script=D:\pythonscript\test.py %* 
+0

動作しません。私のスクリプトパスの間にスペースがあれば問題はありますか? – user44

+0

ファイル実行スクリプトを選択した場合、caeを開くとスクリプトは機能しますか?また、使用しているパスにabaqusパスを設定しましたか?バッチファイルを実行すると、cmdが開き、表示されるメッセージが表示されます。 – CodeCupboard

+0

はいAbaqus GUIでスクリプトオプションを実行すると正しく動作します。 abaqusがインストールされているパスを取得するには、デスクトップのABAQUSアイコンを右クリックし、次に「ファイルの場所を開く」をクリックします。しかし、私はabq6134.batを見て、このパスには.​​exeファイルは見当たりません。私はAbaqus CAE.exeを検索してそのパスを見つけると、このパスはあなたが言及したパスとは非常に異なります。そう。 Abaqus CAE.exeの代わりにabq6134.batパスを挿入することはできますか? – user44

0

バッチファイルからあなたのPythonスクリプトへのinfromationを渡したい場合は、あなたがsys

import sys 
inodb = openOdb(path=str(sys.argv[1])) #for example 

argvを必要とするには、Pythonスクリプトに送信された引数のリストです。 はスクリプト自体の名前とパスで、後ろのすべてはスペースで区切られています。

は、その後、(例えば)あなたのバッチファイルで:

for %%f in (.\*.odb) do (
    abaqus python D:\pythonscript\test.py %%f 
) 

これだけでスタンドスクリプトのためです。 caeスクリプトのために少し修正する必要がありますが、私はもう使用しません(私はライセンスが必要なことを意味しています)。

0

あなたはAbaqusのは、Pythonスクリプトを実行させるの.batファイルに次の行を使用することができます。

start abaqus cae script="C:<location_of_.py_script>\<scriptname>.py" 

私は、Pythonスクリプト自体に集めPythonスクリプトの引数を持つことをお勧めします、いずれかを使用しますinput()関数を使うか、入力ファイルをどこか別の場所で読み込むことで実現できます。 Pythonスクリプト内で、引数を含むファイルを見つける場所を指定することができます。

+0

は受け入れられた回答と同じように見えます。 – agentp

+0

あなたは正しいかもしれませんが、私はプログラミングの専門家であると主張していません。しかし、プログラミングでは厳密な構文が必要であることを知り、 "%*"マークの意味を理解できませんでした。私もabaqus.exeファイルまたは上記のファイルを見つけようとしましたが、abaqusの実行ファイルが見つかりませんでした。私は徹底的に検索していない多くのサブフォルダを持つSIMULIAフォルダを持っています。検索オプションは私にたくさんの.exeファイルを与えました。ちょうど上記のコマンドが私のために働いていたことを知って、それが誰かを助けるかもしれないと期待した –

関連する問題