什么是相当于这个简单的bash字符串操作的窗口?

时间:2013-05-15 18:10:43

标签: bash scripting batch-file

我再一次,希望我可以在尝试做一些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安装:所以请不要使用第三方工具。

3 个答案:

答案 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"

比尔