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
本当に機能しないのですか?それはバッチスクリプトのデフォルトの動作であるため、そのことを実行して終了する可能性があります。 –
出力ファイルが存在しないので動作していないことが分かります。私はまた、この全く同じコードを別のシステムで試してみましたが、うまくいきました。また、スクリプトのウインドウは、スクリプトの最後にポーズ条件を追加してから、そのまま残ります。しかし、手動で.batファイルを起動すると、スクリプトはマージされたファイルを起動して出力します – mattlore
バッチファイルが相対パスを使用している可能性があります。 'ChDir'(そして必要な場合は' ChDrive')を使って 'Shell'コマンドの作業ディレクトリを変更してみてください。私が推測しなければならないのであれば、 'ChDir" C:\ Temp "'を実行したいと思うだろう。 –