1

「ping -a」出力内でホスト名を抽出する必要がありますが、わかりません。正規表現を使用することを考えていました。 と の間の文字を抽出する必要があり [ますcomputername.windowsdomain.か? オンラインでバッチ正規表現の適切なリソースを見つけることができません.JS、PHP、および.NETに関するものです。

私はフランス人なので、の出力は次のようにping -a始まります。

Envoi d'une requête 'ping' sur XXXXXXXX.DOMAIN.NAME.com [127.0.0.1]
4

2 に答える 2

1

バッチ ファイル自体には、正規表現機能はありません。テキスト ファイルまたはプログラム出力の行をフィルタリングするためのオプションがありfindstr、正規表現の独自の解釈を使用します。これは、似ているように見えますが、バグが多く、制限されています。

いずれにせよ、おそらく次のようなもので逃げることができます。

set hostname=
for /f "skip=1 tokens=2" %%x in ('ping -n 1 -a so.me.i.p') do if not defined hostname set hostname=%x
echo %hostname%
于 2013-03-14T12:42:19.957 に答える
0
@ECHO OFF
SETLOCAL
FOR /f "delims=" %%i IN ('ping -n 1 -a 127.0.0.1^|find "["') DO CALL :sub %%i
ECHO hostname: %hostname%
ECHO domain: %domain%
ECHO whole chebang: %chebang%
GOTO :eof

:sub
SET hostname=%2
IF NOT %hostname:~0,1%==[ shift&GOTO sub
SET chebang=%1
FOR /f "tokens=1*delims=." %%a IN ("%1") DO SET hostname=%%a&SET domain=%%b
GOTO :eof

あなたのために働くはずです。変数名は私の専門分野ではありません...

于 2013-03-14T14:44:30.933 に答える