2012-01-01 69 views
0

我的文本文件內容類似於下面的行刪除從特定索引串在一條線上使用PowerShell

xcopy Source Destination /y /r /Q 
xcopy Source Destination /y /r 

我想Desination後刪除所有字符。

我正在嘗試使用Indexof方法並刪除方法。但我沒有找到正確的答案

我試圖找到第三次出現空白並從中刪除。但它不起作用。

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

有人能幫助我實現這個使用PowerShell

+0

以防萬一,「IndexOf」的第二個參數是「搜索起始位置」,而不是出現編號。 – 2012-01-01 08:07:17

回答

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")應該做的伎倆。