我已经写一个批处理文件,让我设置自定义的ping请求输入的细节,但是当我尝试运行它,我可以没有问题输入IP地址,如果我进入这将退出退出,但是当我输入一个号码为数据包的大小,同时评估if %size% GTR 4096
它会抛出一个意外的错误。批量奇怪的GTR错误
我已经在这里看到其他职位如this而据我可以告诉我的代码应该工作。它有什么问题?
:pinger_presub_error
color
echo Invalid input
set size = 64
pause > nul
:pinger
title Pinger
color 0B
cls
echo Enter exit at any point to quit.
echo.
echo Enter IP Adress to ping:
set /p IPAdress=
if "%IPAdress%" == "exit" goto end
echo.
echo Enter packet size 8-4096, leave empty for default(64):
set /p /a size=
if "%size%" == "exit" goto end
if "%size%" == "" set size = 64
if %size% GTR 4096 (goto pinger_presub_error)
if %size% LSS 8 (goto pinger_presub_error)
echo.
echo Enter number of echos 1-20, leave empty for default(1):
set /p /a echos=
if "%echos%" == "exit" goto end
if "%echos%" == "" set echo = 1
if %echos% GTR 20 (goto pinger_presub_error)
if %echos% LSS 1 (goto pinger_presub_error)
cls
echo [Ctrl]+[C] to end
ping /l %size% /t /n %echos% %IPAdress%
goto end
:end
exit
1,有趣。我知道SET/A会忽略右侧的空格,但我不知道它会从左侧剥离空格。很高兴知道。 – dbenham
@dbenham是 - 令人困惑。我希望,事实并非如此。这使得很难解释为什么'set'(没有'/ a')不喜欢空格。 – Stephan
同意。但左/右对称很方便,如下所示:'set/a x * =(y + = 1)'。在优化批量游戏以获得速度之前,我已经在一个表达式中使用了双分配(没有空格)。 – dbenham