批量获取&显示用户输入

时间:2015-06-12 13:35:08

标签: batch-file output echo user-input

为什么这段代码不起作用?

@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.
...

1 个答案:

答案 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)
)