为什么这段代码不起作用?
@echo off
set /p param=Enter Parameters:
echo %param%
输出:
(Nothing)
我搜索了所有相关帖子,但我找不到它有什么问题。没有空间问题,或者我可以识别的语法问题
更新 正如 rojo 所述,由于代码块正常工作,这里是完整的代码,但无效。
@echo off
for /f %%j in ("java.exe") do (
set JAVA_HOME=%%~dp$PATH:j
)
if %JAVA_HOME%.==. (
echo java.exe not found
) else (
set /p param=Enter Parameters:
echo %param%
(statement using JAVA_HOME)
)
pause
输出:
Enter Parameters: jfdklsaj
ECHO is off.
...
答案 0 :(得分:0)
如 Laf 所示,可以通过延迟扩展修复此问题:
@echo off
setlocal enableDelayedExpansion
for /f %%j in ("java.exe") do (
set JAVA_HOME=%%~dp$PATH:j
)
if %JAVA_HOME%.==. (
echo java.exe not found
) else (
set /p param=Enter Parameters:
echo !param!
(statement using JAVA_HOME)
)