批量获取和显示用户输入
Batch Getting & Displaying User Input
为什么此代码不起作用?
@echo off
set /p param=Enter Parameters:
echo %param%
输出:
(Nothing)
相关帖子我都找遍了,也没找到问题所在。没有 space 问题,或者我可以识别的语法问题
更新:
正如 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.
...
如 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)
)
为什么此代码不起作用?
@echo off
set /p param=Enter Parameters:
echo %param%
输出:
(Nothing)
相关帖子我都找遍了,也没找到问题所在。没有 space 问题,或者我可以识别的语法问题
更新: 正如 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.
...
如 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)
)