2013-03-24 59 views
2

嘿,好吧,我又來了,這次我想知道如何在IP地址輸入的輸入變量之間輸入括號。如何在兩個手鐲之間輸入批處理文件

我希望代碼看起來像這樣。

set input= 
set /p input=IP Address: [  ].[  ].[  ].[  ] 

而且一旦我執行了批處理並輸入了我的IP,我希望它看起來像這樣。

IP Address: [ 127 ].[ 0 ].[ 0 ].[ 1 ] 

有沒有辦法做到這一點?

+0

您需要第三方程序來實現這一點。 – Endoro 2013-03-24 05:18:49

+0

如? @ mfm4aa – cmd 2013-03-24 05:26:00

回答

1

我認爲這將是一件非常複雜的事情。

如果您嘗試在批處理中執行此操作,則需要在用戶所做的每個鍵盤上用花括號重新編寫您的行。我所知道的唯一命令就是Choice命令。 如果您以某種方式管理它以重複用戶輸入每個KB命中,則需要使用退格字符對您的批處理文件進行bytehack操作,並具有將用戶輸入與大括號相結合的邏輯。這不僅非常不舒適,而且非常緩慢。

我會建議讓你的用戶輸入任何字符串並在此之後通過「正則表達式」檢查它(窗戶正則表達式是不是很漂亮)

下面是我用它來檢查打印機的IP地址爲例功能。

%打印機%將是您的用戶輸入的字符串。這個函數也有一個nslookup函數。如果你喜歡,你可以省略。 此2號線做了所有的法寶,但你也可以輸入一些IP地址這是不可能像321.099.000.666

:CheckIP 
echo %printer% | findstr /R "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*">nul || goto :EOF 
FOR /F "tokens=* delims=" %%A in ('nslookup %printer% 2^>^&1 ') do (
    echo %%A | findstr /R /C:"Name: ">nul && set printer=%%A 
    echo %%A | findstr /R /C:"\*\*\*">nul && (set printerfqdn=%printer% & goto printerip) 
) 
rem *************************************** 
rem * Name: printername.location.companydomain 
rem * printerfqdn begins at position 10 
rem *************************************** 
set printer=%printer:~9% 
goto :EOF 
相關問題