2017-07-19 291 views
1

所以我想要獲得一個非常簡單的shell命令來執行創建的批處理文件,但由於某種原因,shell命令不會執行任何操作。訪問VBA Shell命令不起作用

批處理文件被創建,當我雙擊批處理文件時,它會執行腳本,但如果我嘗試在VBA中調用shell命令,它似乎嘗試打開命令窗口,但立即關閉它之後,不會產生任何錯誤。使用此代碼之前,我重新格式化該筆記本做工精細此代碼運行Server 2012 R2(我運行Windows 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

由於內容安德烈我能拿到劇本到VBA的Shell命令裏面工作。

通過將我的JRE的PATH設置爲JAVA_HOME,我能夠成功啓動腳本。

setx JAVA_HOME "C:\Program Files (x86)\Java\jre1.8.0_141" 
setx PATH "%PATH%;%JAVA_HOME%\bin";