删除连字符powershell之间的字符

时间:2017-07-21 07:25:26

标签: powershell

我正在尝试删除可变的文本。在这种情况下,AM和文件编号可以增大和减小,因此我需要找到一种方法来删除连字符之间的所有字符(IDictionary)。以下脚本仅适用于设置字符。任何人都可以帮忙吗?

-

文件名示例:Get-ChildItem *.* | foreach { Rename-Item $_ $_.Name.Replace("AM*-", "") }

2 个答案:

答案 0 :(得分:0)

如果您的文件名如AM-#1234567-v1-filename.MSG和 你想删除连字符之间的字符(#1234567和v1?),你可以尝试这样做:

Get-ChildItem $source  *.* | foreach {
  if ($_.name -like "*-*")
   {
   $names = $_.Name.Replace($_.name.Split("-")[1], "").Replace($_.name.Split("-")[2], "").Replace("-","")
    Rename-Item -LiteralPath $_.FullName $names
   }  
}

答案 1 :(得分:0)

您是否尝试将AM-#1234567-v1-filename.MSG重命名为AM-filename.MSG? 如果是这样,这将有效:

<div id="d1"></div>

在你的循环中:

$String = "AM-#1234567-v1-filename.MSG"
$Split = $String.Split("-")
$NewName = $Split[0] + "-"  + $Split[$Split.count -1]
$NewName

}