我已經寫一個批處理文件,讓我設置自定義的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