1

もう一度、Windows バッチ処理を実行しようとしているときに bash を使用できることを願っています。この Bash 式に相当する短い Windows バッチは何ですか?

$ var="EIPADDRESS=192.168.20.139"; IPAddress="${var##*=}" ; echo "IP: ${IPAddress}"
IP: 192.168.20.139

上記は、文字列内の「=」の最後のインスタンスまでを含むすべてを取り除きます。

私は最初の文字を取り除く何かを思いつきましたが、nアプリオリに文字列形式を知ることに頼りたくありません:

set var="EIPADDRESS=192.168.20.139"
set IPAdress=%var:~11%
echo IP: %IPAddress%

提供されるソリューションが何であれ、それは Windows 7 のバニラ インストールで動作する必要があります。したがって、サード パーティのツールは使用しないでください。

4

3 に答える 3

2

これを試してください(はい、純粋なBatch):

(for %i in (EIPADDRESS=192.168.20.139) do @echo %i)|more +1
于 2013-05-15T18:34:51.197 に答える
2

これは、標準の Win7 インストールにインストールされている PowerShell で実行できます。

> $var = "EIPADDRESS=192.168.20.139"
> $var -match "(\d{1,3}\.){3}\d{1,3}"
> $ip = $Matches[0]

これは、コマンド プロンプトで実行する方法です。ファイルの作成は、.ps1ここに書かれている内容と非常によく似ています。

于 2013-05-15T18:26:21.023 に答える
0

パワーシェル:

$var = "EIPADDRESS=192.168.20.139"
$ipAddress = $var | select-string '(\d{1,3}\.){3}\d+' | foreach-object {
  $_.Matches[0].Groups[0].Value
}
"IP is $ipAddress"

明細書

于 2013-05-15T18:27:20.207 に答える