Pix*_*ted 16 powershell powershell-2.0
我可以使用什么函数在PowerShell 2.0中查找字符串中的字符位置.
即如果使用SQL Server,我会使用CHARINDEX或PATINDEX.
我查看了使用Select-Stringcmdlet,但它似乎没有做我需要它做的事情.
最终,我希望在文件名中找到一个"_"字符,并将所有内容删除到以下"." .
示例文件名237801_201011221155.xml
最终解决方案,下面删除当前目录中所有.xml文件的所有字符,包括<_>到<.>
Get-Childitem *.xml | Rename-Item -newname `
  { $_.name -replace $_.name.SubString($_.name.IndexOf("_"), `
       $_.name.LastIndexOf(".") - $_.name.IndexOf("_") ),''}
Run Code Online (Sandbox Code Playgroud)
最终会得到237801.xml
And*_*rin 35
该字符串是.NET字符串,因此您可以使用.NET方法.在你的情况下:
$index = "The string".IndexOf(" ")
Run Code Online (Sandbox Code Playgroud)
将返回3,这是字符串中第一次出现空格.有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/system.string.aspx
为了您的需要尝试类似:
$s.SubString($s.IndexOf("_") + 1, $s.LastIndexOf(".") - $s.IndexOf("_") - 1)
Run Code Online (Sandbox Code Playgroud)
或者你可以使用正则表达式:
if ($s -Match '(_)(.*)(\.)[^.]*$') {  $matches[2] }
Run Code Online (Sandbox Code Playgroud)
(必须根据您的需要进行调整).
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           159873 次  |  
        
|   最近记录:  |