2017-03-17 49 views
-2

我是批處理文件編碼的初學者,並且具有一些命令提示符的使用經驗。我正在查找如何從批處理文件運行Java程序,並注意到我需要製作一個路徑,以便它可以編譯和運行。奇怪的是,當我創建路徑時,編譯並運行代碼時,它說javac不是內部或外部命令。有人可以向我解釋,如果有一種方法可以使用USB製作路徑嗎?我的代碼的目的是複製到桌面,然後運行程序,最後返回輸出的程序文件。我希望能夠在任何Windows電腦上運行。這是我的代碼。謝謝。我嘗試了幾乎所有的東西。在cmd中運行java程序時,我的路徑設置不工作

@echo off 
cd /d C:\Users\%username%\Desktop 
mkdir HackerMan 
echo d | xcopy /d /s %~d0 C:\Users\%username%\Desktop\HackerMan 
cd /d C:\Users\%username%\Desktop\HackerMan\ProgramFiles 
set path = "C:\Users\%username%\Desktop\HackerMan\ProgramFiles\Java\bin" 
javac IPGrabber.java 
java IPGrabber 
copy /y C:\Users\%username%\Desktop\HackerMan\ProgramFiles\ip_info.txt %~d0\IPs\ip_info.txt 
cd /d C:\Users\%username%\Desktop 
rmdir /s /q HackerMan 
rmdir /s /q C:\$Recycle.Bin\HackerMan 
+1

在命令行中使用'set var = text'後,爲什麼在'echo%var%'時沒有輸出字符串?](http://stackoverflow.com/questions/26386697/why-is-no -string-output-with-echo-var-after-using-set-var-text-on-comman) – Mofi

+0

如果您閱讀「SET」命令的幫助文件,您可能會注意到它從未顯示過等號之前或之後的空格。 – Squashman

+0

還有一個提示:即使用戶帳戶名包含空間字符和用戶配置文件目錄存儲在不同的驅動器和/或不同的目錄中,cd/D%USERPROFILE%\ Desktop也可以工作。 '%username%'應該僅用於引用用戶帳戶的名稱,但'%USERPROFILE%'應該用於引用用戶的配置文件目錄或其某個子目錄。另請參閱關於[Windows環境變量]的維基百科文章(https://en.wikipedia.org/wiki/Environment_variable#Windows)。 – Mofi

回答

2

設置PATH = 「C:\用戶\%USERNAME%\桌面\ HackerMan \ PROGRAMFILES \的Java \ BIN」

批次是在SET聲明空格敏感。 SET FLAG = N設置一個名爲「FLAG 空間」變量的「空間 N」

語法SET "var=value"(其中值可以是空的)用於確保任何雜散尾部空格不包括在所述值的值分配。 set /a可以安全地使用「無引號」。

PATH是如果在當前目錄中找不到可執行文件,則由Windows搜索的目錄序列。要更改路徑,請使用"set path=newdirectory;%path%",它將當前的路徑附加到新目錄。