2012-01-01 11 views
0

私のテキストファイルの内容を使用して行に特定のインデックスから文字列を削除します。は、次の行に類似したPowerShellの

私はIndexofメソッドでメソッドを削除しようとしていました。しかし、私は正解を見つけませんでした

私は空白の3番目の発生を見つけてそれから削除しようとしました。それは動作しません。

$index=$line.IndexOf(" ",3) 
$line=$line.RemoveAt($index) 

ができるいくつかの一つは、私はトリックを行う必要があり、この使用してPowerShellの

+0

「IndexOf」の2番目のパラメータは、「検索開始位置」であり、オカレンス番号ではありません。 –

答えて

2

私はあなたの実際のファイルは、このようなパスを持つことになります推測している:

xcopy "C:\Folder with space" "C:\Folder 2 with space" /y /r /Q 

ですから、このような正規表現を検索/置換でXCOPYの引数を削除することができます。

'xcopy "C:\Folder with space" "C:\Folder 2 with space" /y /r /Q' -replace '/[\w]' , '' 

結果は次のとおりです。

xcopy "C:\Folder with space" "C:\Folder 2 with space" 

この方法で、いくつのスペースがあるか心配する必要はありませんe xcopyパラメーター。それらの前に来たスペースの数に関係なく、パラメータは削除されます。

正規表現は、スラッシュを含むテキストに一致し、それに単語文字を表すcharacter classが続くテキストを削除します。

0

[Regex]::Replace("xcopy Source Destination /y /r /Q","^(xcopy) +([^ ]+) +([^ ]+).*$","`$1 `$2 `$3")を達成するのに役立ちます。

関連する問題