PowerShellで文字列を切り出す方法(特定の文字以降/以前も抽出)

PowerShell

PowerShellで文字列を切り出したいが方法がよくわからなく、悩んでましたので、メモを残します。

Select-Objectコマンドレット

Select-Objectコマンドレットを使い指定の値を抽出します。

Select-Objectコマンドレットのパラメーター

パラメーター{説明}
-First初めの要素を抽出します。
-Last最後の要素を抽出します。
Select-Object (Microsoft.PowerShell.Utility) - PowerShell
Select-Object コマンドレットは、オブジェクトまたはオブジェクトのセットの指定されたプロパティを選択します。 また、一意のオブジェクト、指定した数のオブジェクト、または配列内の指定した位置にあるオブジェクトを選択することもできま...
$strdate = 'date=2024-09-10'
$substring = $strdate -split '=' | Select-Object -Last 1
Write-Output $substring
2024-09-10
$strdate = 'date=2024-09-10'
$substring = $strdate -split '=' | Select-Object -First 1
Write-Output $substring
date

Split演算子

<対象文字列>.Substring( <startIndex>,< 文字数>)

$strdate = 'date=2024-09-10'
$substring = $strdate -split '='
$intArrLength = $substring.Length - 1
Write-Output $substring[$intArrLength]
2024-09-10
$strdate = 'date=2024-09-10'
$substring = $strdate -split '='
Write-Output $substring[0]
date

IndexOf メソッド

<対象文字列>.IndexOf( <検査値>)
<対象文字列>.LastIndexOf(<検査値>)
<対象文字列>.Substring( <startIndex>,< 文字数>)

$strdate = 'date=2024-09-10'
$intMojiichi = $strdate.LastIndexOf('=')  + 1
$intAllMojiLength = $strdate.Length
$intMojiLength = $intAllMojiLength - $intMojiichi
$substring = $strdate.Substring( $intMojiichi,$intMojiLength)
Write-Output $substring
2024-09-10
$strdate = 'date=2024-09-10'
$intMojiLength = $strdate.IndexOf('=') 
$substring = $strdate.Substring(0,$intMojiLength)
Write-Output $substring
date

コメント