2016-12-13 6 views
-1

これは私のより大きなコードの一部です。文字列powershellバージョン4を分割しますか?

私はこれのためのアセンブリを追加していません。私は別の変数で別々に '20161207'を得たいと思う。しかし、このアプローチは失敗しています:「解析」*「数量子{x、y}は何もしていません」

[string]$filter = '20161207*' 
$pathPart = $filter -split '*' 

echo $pathPart[0] 

お手数ですが、 PowerShell 4.0を使用しています。 私のバージョンのpowershellではエスケープ文字は何か分かりません。私は試しました '/' 私はエコーアウトしたい: '20161207'

答えて

7

-splitオペレータは、リテラル文字列ではなく、正規表現を使用します。 *は正規表現の数値化器であるため、そこには何もありません。あなたはそれをエスケープする必要があります:

$filter -split '\*' 

またはその代わりにstring.Splitメソッドを使用します。

単一の文字に分割
$filter.Split('*') 

+0

このメソッドは '20161207'を生成し、 '20161207'は生成しません。末尾には私が興味を持っていないスペースがあります。 –

+0

@RiteshThakurは空白を取り除くために出力で 'Trim'を呼び出します。 – Nkosi

+2

@RiteshThakur:スペースは、結果の配列を文字列に戻す場合にのみ表示されます分割文字の前にスペースがある場合は、最初の部分と空の文字列をスペースで区切ります)。分割だけでは魔法のようにスペースは生成されませんが、他のコードではスペースが生成されます。 – Joey

関連する問題