2011-03-18 74 views
3

我想將文件拖放到.bat文件中。我放棄它後,我想運行一個jar文件,並將下降的文件路徑作爲輸入。我怎樣才能完成與相對路徑運行jar文件?我的.bat文件運行的是我的用戶目錄,而不是它所在的目錄。在蝙蝠上運行放置文件的jar

goal: cmd /c java -jar myjar.jar -f %1 
current: cmd /c java -jar c:\somewhere\myjar.jar -f %1 

的一點是,該程序(JAR + BAT)是一個小的自動化部署過程的一部分,每個用戶有可能是運行jar不同的路徑。

+0

我明白myjar.jar是相對的路徑,但是相對於什麼呢?拖放到批處理或到%1路徑? – jeb 2011-03-18 10:01:14

+0

相對於拖放批次。刪除的文件導致絕對路徑 – lrxw 2011-03-18 12:22:29

回答

3

也許這個作品,它改變了當前目錄的批處理文件

pushd "%~dp0" 
cmd /c java -jar myjar.jar -f "%~1" 
+0

在批處理腳本末尾是否暗示「POPD」,或者是否應該明確發出以恢復目錄堆棧狀態? – 2011-03-18 10:07:22

+0

謝謝,這工作完美:) @Andriy當我再次啓動腳本它運行在我的用戶目錄上下文再次 – lrxw 2011-03-18 10:18:37

+0

@Andriy M:POPD是一個正常路徑還原所需或setlocal也可以解決它,但不是結束批次 – jeb 2011-03-18 10:25:04