2016-11-10 96 views
0

我需要打開一個文件,一個批處理文件是這樣的:與批處理文件打開文件,然後使用文件中的java類

(右鍵單擊file.txt的)>「打開方式」 file.bat

然後我需要得到file.txt的位置並將其設置爲可變路徑這樣的:

set path = <file.txt path> 
java test.class path 

如何設置路徑到file.txt的的位置,而在硬編碼路徑(我不會一直知道文件名或位置)

+0

不知道[這](http://stackoverflow.com/questions/28190126/how-can-i-embed-java-code-into-batch-scriptis-it-possible-to-create-java-蝙蝠)會幫助你,但你可以看看。 – npocmaka

+3

請不要使用名爲path的變量。它已經是系統使用的環境變量。無論在控制檯中傳遞給批處理文件的文件如何,拖放或右鍵單擊sendto,整個文件路徑都會發送到批處理文件,併成爲批處理文件的參數。 'set fpath =%〜dp1' – Squashman

+1

你可以使用[sendTo entry](http://stackoverflow.com/questions/6852833/running-a-batch-script-by-right-clicking-any-file),看這裏 – LotPings

回答

0

Squashman在他的評論中已經給出了此批處理文件編碼任務所需的幾乎所有信息。

首先,不要到環境變量分配一個字符串值圍繞等號加空格。有關詳細說明,請參見Why is no string output with 'echo %var%' after using 'set var = text' on command line?的答案。

其次,不要使用其已經由Windows一樣PATH這是一個非常重要的預定義的環境變量預定義的環境變量名。打開命令提示符窗口並運行set以獲取爲當前用戶帳戶預定義的所有環境變量的輸出。有關這些變量的詳細信息可以在維基百科有關Windows Environment Variables的文章中找到。對下一行的錯誤信息使用path作爲一個環境變量名的結果肯定是在這裏,因爲java.*在環境變量PATHEXT定義的文件擴展名不能在當前目錄或環境變量PATH定義的任何目錄中找到。

三,Windows資源管理器通過選擇所啓動的過程中使用的文件(S)發送到有完整的文件名(路徑+文件名+文件擴展名)雙引號括起來。在命令提示符窗口call /?中運行以獲取有關如何引用批處理文件的參數字符串的幫助輸出。

因此,所有你可能需要在批處理文件是:

java.exe test.class "%~dp1" 

如果你想看看你的批處理文件通過Windows資源管理器啓動後,在您的批處理文件的頂部放置以下兩個命令:

@echo %0 %* 
@pause 

批處理文件輸出的第一行顯示了Windows資源管理器如何通過命令解釋器cmd.exe啓動批處理文件。

相關問題