常用到的有三种:
1、 -match 运算符,通过 $Matches来获取字段。
比如我之前的或取ip地址:
http://hi.baidu.com/shrekzz/item/1bcf45ffc04d461fff3582fc
$WebClient=new-object System.Net.WebClient
$url="http://iframe.ip138.com/ic.asp"
$WebClient.DownloadString($url) -match '(?<ip>(\d+\.){3}\d+)'|out-null
$Matches.ip
日志入库中的方法:http://hi.baidu.com/shrekzz/item/4add3720c11b790143634a21
$cname|%{$_ -match 'ERROR...(?<time>.+):\d+ 区ID = (?<zoon>\d+) , 组ID = (?<group>\d+) , 线ID = (?<line>\d+) , 人数 = (?<num>\d+)'
$logtime=$Matches.time
$logtype=1902
$regionid=$Matches.zoon
$groupid=$Matches.group
$lineid=$Matches.line
$online_role_count=$Matches.num
2、matches()方法获取字段。
$txt='aaaa ssd <112@baidu.com>;
bbs sdg wwe <22888@baidu.com>;
333p998 44iiiiiiii<aab@baidu.com>;
33 341 <44@baidu.com>;'
[regex]::matches($txt, '<(.+)>;') | %{$_.Groups[1].Value}
3、-split方法
("we-rt-192.168.12.11-45.exe" -split "-")[2]
常用到的有三种:1、 -match 运算符,通过 $Matches来获取字段。比如我之前的或取ip地址:http://hi.baidu.com/shrekzz/item/1bcf45ffc04d461fff3582fc$WebClient=new-object System.Net.WebClient$url="http://iframe.ip138.com/ic.asp"$Web
本文介绍PowerShell中如何将一个字符串输出到一个文件文件的结尾,即不覆盖原来的内容,只是附加到原文之后。
有这样一个任务:将“This is PowerShell!”这句话,附加到D:\1.txt文件之后。
面对这个任务,如果我们立即去想FileStream对象,那就错了!FileStream是.NET中的传统方法了!在PowerShell中,我们可以使用Out-File这个cmdlet来一步实现将字符串附加到一个文件之后的效果。且看下面的演示:
代码如下:
PS C:\Users\spaybow> type d:\1.txt
Hello World!
PS C:\Users\spa
使用PowerShell可以很方便的计算字符串的长度。PowerShell是继承于Microsoft .NET Framework的,所以在.NET里面怎么获取到字符串的长度,在PowerShell中可以使用相同的方法。
我们知道在.NET中,可以使用String.Length方法来获取字符串的长度,让我们看看PowerShell中怎么样依葫芦画瓢。
代码如下:
$string = “1234567”;
Write-Host $string.Length;
#输出为7
如果你像小编一样懒,你甚至可以这样写:
代码如下:
PS >”1234567″.length
怎么样,是不是很简单?
$text.Length - $text.Replace(`n,'').Length + 1
从技术上讲,该示例使用了上面的字符串来创建多行字符串,但是这仅仅是一个例子。只要懂得了它的工作原理就能在多种场合使用。
支持所有的PS版本
您可能感兴趣的文章:PowerShell小技巧之查找获取注册表路径Powershell小技巧之
PS C:\> ("Pstips.net" | Get-Member Split).definition.Replace("), ", ")`n")
string[] Split(Params char[] separator)
string[] Split(char[] separator, int count)
string[] Split(char[] separator, System.StringSplitOptions options)
string[] Split(char[] sepa
$b=$a.Substring(0,$a.Length-5) -replace "\.","_"
$c=$a.Substring(0,$a.Length-5).Replace(".","_")
$d=($a.substring(0,$a....
本文介绍在PowerShell中使用通配符来查找字符串,和通配符一起使用的是like运算符。
在PowerShell中的通配符是星号(*)和问号(?),这跟DOS系统中是一样的。要使用通配符在字符串中查找,可以使用like运算符。举例如下:
“123”是以1开头
代码如下:PS C:\Users\splaybow> “123” -like “1*”
“123”是以1开头,3结尾
代码如下:PS C:\Users\splaybow> “123” -like “1*3”
“123”包含2
代码如下:PS C:\Users\splaybow> “123” -like “*2
本文介绍在PowerShell中使用-match运算符加正则表达式,进行字符串的搜索。
match运算符,后面加上正则表达式,可以对字符串进行正则匹配查找。正则表达式功能强大,用于查找字符串时方便快捷。所以match运算符是我们经常要用到的一个知识。match查找的结果也是布尔值类型,即True或False,表示匹配成功或匹配失败。
下面举例说明:
“123”是以“1”开头
代码如下:PS C:\Users\spaybow> “123” -match “^1.*”
“123”是以“1”开头,以“3”结尾
代码如下:PS C:\Users\spaybow> “123” -match
PowerShell 使用特殊文本命令 -- 字符串操作格式化操作符 –F 在PowerShell文本操作符中非常重要,经常被用来增强数字类型和日期类型的可读性:"{0}diskettesperCD"-f(720mb/1.44mb)
500diskettesperCD所有的基本操作符形式都大同小异,要处理的数据位于操作符的左右两边,然后通过操作符建立连接。例...
if([io.File]::Exists($outFilename)){
$outputStream=New-Object System.Io.FileStream($outFilename,"Open")
$size = $outputStream.Length
$outputStream.Close() #此处需要释放资源,否则显示文件已被访问,无法断点续传。
"开始下载文件"+$fileName+$(if($size -gt 0){"从$size`开始下载……"})
$flg=FtpDownload $filename $size
}until($flg)