2017-07-19 7 views
1

私は非常に単純なシェルコマンドを作成しようとしていますが、作成されたバッチファイルを実行しようとしていますが、何らかの理由でシェルコマンドが何もしません。VBAシェルコマンドにアクセスできません

バッチファイルが作成され、バッチファイルをダブルクリックするとスクリプトが正常に実行されますが、VBAでシェルコマンドを呼び出そうとすると、コマンドウィンドウを開くように見えますが、すぐに閉じますその後、エラーは発生しません。このコードは、私がこのラップトップを再フォーマットする前に正常に動作するために使用され、このコードはサーバー2012 R2(私が実行しているウィンドウ10)を

 Dim SedjaShell 
     f = "C:\Temp\_SedjaScript.bat" 
     Open f For Output As #1 
     Print #1, Chr(34) & SedjaDir & Chr(34) & " merge --files " & Page1 & " " & Page2 & " " & TOS & " " & Disclosure & " --output " & OutputDir 
     Print #1, "Pause" 
     Close #1 

     SedjaShell = Shell("C:\Temp\_SedjaScript.bat", 1) 

実行している別のシステム上で動作し、私が欠落している可能性があり、何かはありますか?アンドレに_SedjaScript.Bat

"C:\Users\User\Desktop\DealTracker\MergeFiles\sejda-console-3.0.4\bin\sejda-console.bat" merge --files C:\Temp\ContractSummary.pdf C:\Temp\Page2.pdf C:\Temp\TOS.pdf C:\Temp\Disclosure.pdf --output "C:\Users\User\Desktop\DealTracker\Completed Contracts\Company-Name-Inc-07-19-2017-Contract.pdf" 
Pause 
+0

本当に機能しないのですか?それはバッチスクリプトのデフォルトの動作であるため、そのことを実行して終了する可能性があります。 –

+0

出力ファイルが存在しないので動作していないことが分かります。私はまた、この全く同じコードを別のシステムで試してみましたが、うまくいきました。また、スクリプトのウインドウは、スクリプトの最後にポーズ条件を追加してから、そのまま残ります。しかし、手動で.batファイルを起動すると、スクリプトはマージされたファイルを起動して出力します – mattlore

+0

バッチファイルが相対パスを使用している可能性があります。 'ChDir'(そして必要な場合は' ChDrive')を使って 'Shell'コマンドの作業ディレクトリを変更してみてください。私が推測しなければならないのであれば、 'ChDir" C:\ Temp "'を実行したいと思うだろう。 –

答えて

1

感謝の内容を追加

EDITは 私はVBAのシェルコマンドの内部で動作するスクリプトを取得することができました。

私のJREのPATHをJAVA_HOMEに設定すると、スクリプトを正常に起動できました。

setx JAVA_HOME "C:\Program Files (x86)\Java\jre1.8.0_141" 
setx PATH "%PATH%;%JAVA_HOME%\bin"; 
関連する問題