Java 当路径有空间时,使用批处理循环生成类路径时出现问题
我花了一些时间来解决这个问题。我的目标只是通过使用批处理文件循环目录来构建java类路径 这是我的节目:Java 当路径有空间时,使用批处理循环生成类路径时出现问题,java,batch-file,Java,Batch File,我花了一些时间来解决这个问题。我的目标只是通过使用批处理文件循环目录来构建java类路径 这是我的节目: @echo off @setlocal enableextensions @cd /d "%~dp0" set "CURRENT_DIR=%cd%" setx STSPOS_PS "%CURRENT_DIR%" /m set "BIN=%CURRENT_DIR%\bin" set "LIB=%CURRENT_DIR%\lib" set "LOG=%CURRENT_DIR%\log" se
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
set "CURRENT_DIR=%cd%"
setx STSPOS_PS "%CURRENT_DIR%" /m
set "BIN=%CURRENT_DIR%\bin"
set "LIB=%CURRENT_DIR%\lib"
set "LOG=%CURRENT_DIR%\log"
set "jdk=%CURRENT_DIR%\jdk"
setx JAVA_HOME "%JDK%" /m
FOR %%X in ("%LIB%\*.jar") DO CALL :AddToPath "%%~dpnfX"
FOR %%X in ("%JDK%\lib\*.jar") DO CALL :AddToPath "%%~dpnfX"
FOR %%X in ("%JDK%\jre\lib\*.jar") DO CALL :AddToPath "%%~dpnfX"
FOR %%X in ("%JDK%\jre\lib\ext\*.jar") DO CALL :AddToPath "%%~dpnfX"
%BIN%/service.bat
echo %CLASSPATH%
GOTO :EOF
:AddToPath
SET CLASSPATH=%~1;%CLASSPATH%
:EOF
我遇到的问题是,当目录在路径中包含空间时,如果我在文件夹“c:\project abc”中运行批处理文件,则程序将遇到错误“UNCC:\project command not found”
如果路径中没有空间,则按预期工作
希望有人能提供解决方案
谢谢,引号是您的
虽然我会使用
for/r
和延迟扩展,这样一切都可以通过一个循环完成,而不需要子程序。我想我在做了进一步的研究后找到了解决方案
我换线
set "CURRENT_DIR=%cd%"
到
因此,输出将是“C:\projectabc”到“C:\projec~1”
谢谢。短路径并不总是启用的,但它是一个可行的解决方案。
set "CURRENT_DIR=%cd%"
FOR %%F in ("%cd%") DO set "CURRENT_DIR=%%~sF"