set / p读取ctrl + c作为输入而不是终止脚本

时间:2014-09-01 06:33:04

标签: windows batch-file

:gethostname
set /p hostname= Enter the HOST NAME:
call :TRIM2 %hostname% hostname

:TRIM2
SET %2=%1
goto y

:y
if "%hostname%"=="" (
echo Invalid hostname name1 
VERIFY > nul
goto gethostname
)
if errorlevel 1 (
echo Invalid hostname name2 
VERIFY > nul
goto gethostname
)

在上面的代码中,如果我尝试在下面的特定行上终止批处理(ctrl + c)。

ENTER the HOST NAME:

脚本将ctrl + c作为输入读取并显示

Invalid hostname name1

如何避免这种情况并在ctrl + c上终止批处理。 即使我删除了修剪部分,上述行为也是一样的。

提前致谢。

2 个答案:

答案 0 :(得分:1)

虽然这并没有完全抑制此行为,但最小化它并且几乎总是显示取消提示。

:gethostname
    set /p "hostname= Enter the HOST NAME:" || goto gethostname

答案 1 :(得分:0)

这是一种解决方法 - 只需按enter而不使用任何文字而不是control-c

:gethostname
set "hostname="
set /p "hostname= Enter the HOST NAME: "
if not defined hostname goto :EOF
call :TRIM2 %hostname% hostname