2014-09-01 60 views
2
: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)。设置/ p读取ctrl + c作为输入,而不是终止脚本

ENTER the HOST NAME: 

的脚本读取CTRL + C作为一个输入,并显示

Invalid hostname name1 

如何避免这种和CTRL + C终止批次。 即使我删除了修剪部分,上述行为也是相同的。

在此先感谢。

+1

为我工作。你是否直接从普通的命令窗口运行这个脚本? – 2014-09-01 07:31:46

+0

@HarryJohnston雅我在普通的命令窗口上运行 – user3227783 2014-09-01 07:58:53

+0

它也适用于我的64位Windows 7机器没有问题。你使用的是什么Windows版本? – dbenham 2014-09-01 11:09:28

回答

1

虽然这并没有完全抑制这种行为,但最大限度地减少它和几乎总是显示取消提示。

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

这是一个解决办法 - 只要按下enter没有任何文本,而不是control-c

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