如何在bat文件的变量中添加" "双精度代码?



我已经编写了bat文件以使用%JAVA_HOME%从系统变量中获取路径并将其分配给一个变量,现在如何用作设置路径,因为在设置路径中它要求我在" ">代码之间提供此路径,我无法添加。

请帮我添加它,如何?

如果使用set variable="value"set "variable=value"定义环境变量,则有很大的不同。阅读为什么在命令行上使用"set var = text"后没有带有"echo %var%"的字符串输出的答案?了解详情。

强烈建议使用set "variable=value",即将字符串分配给不带双引号的环境变量,并引用始终用双引号括起来的环境变量的值。

看起来您使用:

@ECHO OFF
set JAVA_CMD="C:Program FilesJavajdk1.8.0_92jrebinjava"
%JAVA_CMD% TransferArborDeereFiles
pause

因此,要获取未指定文件扩展名java可执行文件.exe路径,因此 Windows 命令解释器需要搜索本地环境变量PATHEXT中列出的文件扩展名java.*,可以使用以下批处理代码:

@ECHO OFF
set JAVA_CMD="C:Program FilesJavajdk1.8.0_92jrebinjava"
rem %JAVA_CMD% TransferArborDeereFiles
for /F "delims=" %%I in (%JAVA_CMD%) do set "JAVA_CMD_PATH=%%~dpI"
set JAVA_CMD
pause

此批处理文件仅输出环境变量的值JAVA_CMDJAVA_CMD_PATH

但更好的是:

@ECHO OFF
setlocal EnableExtensions DisableDelayedExpansion
set "JAVA_CMD=%ProgramFiles%Javajdk1.8.0_92jrebinjava.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

此批处理文件应在命令提示符窗口中执行,而不是双击批处理文件。在开发中调试批处理文件时,应始终通过从命令提示符窗口中运行批处理文件来完成,以查看 Windows 命令解释器输出的可能导致退出批处理文件执行的错误错误消息。

要了解使用的命令及其工作原理,请打开命令提示符窗口,在那里执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • echo /?
  • endlocal /?
  • for /?
  • pause /?
  • rem /?
  • set /?
  • setlocal /?

最新更新