-2

私の大きなプログラムに入れるテスト用の小さなプログラムがあります。

だから私はIPアドレスをセット/pvar = varibleに入力したいのですが、それは数字しかできません。手紙ではありません。つまり、facebook.comに入ると、エラーがスローされます。つまり、echoInvaildとpauseです。

したがって、IP structer 192.168.1.4にIPを入力すると、Validがエコーされます。しかし、IPストラクタに544564212.545のような数字を入力すると、エラーラベル/マーカーシング(:marker)が呼び出され、Invaildがエコーされます。したがって、IP構造化文字列でのみ機能する必要があります。

皆さんの助けに感謝します。私のプログラムは数日で利用できるようになります。助けてくれてありがとうagian。

4

2 に答える 2

0

もう少し複雑なスクリプトを作成しました。コマンドラインから呼び出す必要があります<script.cmd> IP<script.cmd> 192.168.1.4.

@echo off &setlocal enabledelayedexpansion
set "var=%~1"
set "flag="

for /f "tokens=1-4delims=." %%i in ("%var%") do set /a var1=%%i, var2=%%j, var3=%%k, var4=%%l
for /l %%i in (1,1,4) do if %%i neq 1 (set "var0=!var0!.!var%%i!") else set "var0=!var%%i!"
for /l %%i in (1,1,4) do if "!var%%i!" equ "" set "flag=1"
if not defined flag for /l %%i in (1,1,4) do if !var%%i! lss 0 set "flag=1"
if not defined flag for /l %%i in (1,1,4) do if !var%%i! gtr 255 set "flag=1"
if defined flag (echo "%var0%" is NOT a valid IP.) else echo "%var0%" is a valid IP.
endlocal
于 2013-03-20T16:30:41.387 に答える
0

これを試して:

set /p var=Enter IP address: 
set var=%var: =%
echo %var%|findstr /rc:"^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$" >nul
if %errorlevel% equ 0 (
  echo Valid IP address.
) else (
  echo Not a valid IP address.
)
于 2013-03-20T10:47:54.283 に答える