2016-12-22 26 views
0

文字列の最初の文字を置き換える必要があります。powershellの最初の文字を置き換えます。

if(!([string]::Compare($filestmp.Substring(0,1), "M", $True))) 
{ 
    echo cos 
    $filestmp=$filestmp.Replace('^(.*?)M(.*)','Zmodyfikowany ') 
} 

コードは、それはまた、動作しません&例外をスローしません:私はこのようなスニペットを持っています。私のechoステートメントが印刷されているので、ifの条件が満たされます。私はここで間違って何をしていますか?

+0

何をしようとしていますか?なぜコード内に正規表現があるのですか?置き換える前にあなたの文字列はどのように見えますか?どのようにそれを後にしたいですか? –

+1

'String.Replace()'は正規表現をサポートしていません。 '-replace'演算子または' Regex.Replace() 'を使用します。 –

+0

文字列" M log.txt "を検索し、" Zmodyfikowany log " txt " – warkocz

答えて

3

RegExは過剰です。

単純な部分文字列についてはどうですか?

$filestmp=("Zmodyfikowany" + $filestmp.SubString(1)) 
+0

ありがとう!素晴らしい仕事。私はそれについて考えなかった。 – warkocz

0

他のソリューション

$filestmp="M Log.txt" 

#test equal which ignore case 
if ($filestmp.Substring(0,1) -ieq "M") 
{ 
    $filestmp="'Zmodyfikowany{0}" -f $filestmp.Substring(1) 
} 

#test like which ignore case 
if ($filestmp -ilike "M*") 
{ 
    $filestmp="'Zmodyfikowany{0}" -f $filestmp.Substring(1) 
} 
関連する問題