我再一次,希望我可以在尝试做一些Windows批处理时使用bash。什么是这个Bash表达式的简短windows批处理?
$ var="EIPADDRESS=192.168.20.139"; IPAddress="${var##*=}" ; echo "IP: ${IPAddress}"
IP: 192.168.20.139
以上删除了所有内容,包括字符串中最后一个“=”实例。
我想出了一些剥离了第一个n
个字符的东西,但我宁愿不依赖于知道字符串形式的apriori:
set var="EIPADDRESS=192.168.20.139"
set IPAdress=%var:~11%
echo IP: %IPAddress%
无论提供什么解决方案,都必须使用Windows 7的vanilla安装:所以请不要使用第三方工具。
答案 0 :(得分:2)
您可以在PowerShell中执行此操作,PowerShell安装在vanilla Win7上:
> $var = "EIPADDRESS=192.168.20.139"
> $var -match "(\d{1,3}\.){3}\d{1,3}"
> $ip = $Matches[0]
这就是你如何在命令提示符下运行它。创建.ps1
文件与此处的内容非常相似。
答案 1 :(得分:2)
试试这个(是的,纯粹的批次):
(for %i in (EIPADDRESS=192.168.20.139) do @echo %i)|more +1
答案 2 :(得分:0)
的PowerShell:
$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"
比尔