我已经编写了bat文件来使用%JAVA_HOME%
从系统变量获取路径并将其分配到一个变量中,现在如何使用设置路径,因为在set path中它问我&#之间的路径34; " 代码,我无法添加。
请帮我添加一下,怎么样?
答案 0 :(得分:0)
如果使用set variable="value"
或set "variable=value"
定义环境变量,则会有很大差异。有关详细信息,请阅读Why is no string output with 'echo %var%' after using 'set var = text' on command line?上的答案。
强烈建议使用set "variable=value"
,即将字符串分配给不带双引号的环境变量,并引用始终用双引号括起来的环境变量的值。
看起来你使用:
@ECHO OFF
set JAVA_CMD="C:\Program Files\Java\jdk1.8.0_92\jre\bin\java"
%JAVA_CMD% TransferArborDeereFiles
pause
因此,要获取未指定文件扩展名java
的{{1}}可执行文件的路径,因此Windows命令解释程序需要搜索具有本地环境变量{{中列出的文件扩展名的.exe
1}},可以使用以下批处理代码:
java.*
此批处理文件只输出环境变量PATHEXT
和@ECHO OFF
set JAVA_CMD="C:\Program Files\Java\jdk1.8.0_92\jre\bin\java"
rem %JAVA_CMD% TransferArborDeereFiles
for /F "delims=" %%I in (%JAVA_CMD%) do set "JAVA_CMD_PATH=%%~dpI"
set JAVA_CMD
pause
的值。
但更好的是:
JAVA_CMD
此批处理文件应在命令提示符窗口中执行,而不是双击批处理文件。在开发中调试批处理文件应始终通过在命令提示符窗口中运行来查看,以查看Windows命令解释器输出的错误消息,从而导致退出批处理文件的执行。
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
JAVA_CMD_PATH
@ECHO OFF
setlocal EnableExtensions DisableDelayedExpansion
set "JAVA_CMD=%ProgramFiles%\Java\jdk1.8.0_92\jre\bin\java.exe"
for /F "delims=" %%I in ("%JAVA_CMD%") do set "JAVA_CMD_PATH=%%~dpI"
rem Output all environment variables starting with JAVA_CMD.
set JAVA_CMD
rem "%JAVA_CMD%" TransferArborDeereFiles
rem "%JAVA_CMD_PATH%OtherScriptOrExe" "argument 1" "argument 2"
endlocal
echo /?
endlocal /?
for /?
pause /?
rem /?