2015-11-27 202 views
0

我試圖從.txt文件中刪除一些行。Powershell - 從文本文件中刪除行

function save{ 

Param(
[parameter(Mandatory=$true)] 
[String]$savedPath, 
[String]$fPath 
) 

$parentPath = (get-item $fPath).parent.fullName 
$parentPath 

while($savedPath -ne $parentPath) { 
    analyse $savedPath 
    $savedPath = (get-item $savedPath).parent.fullName 
} 
} 

分析功能在這裏並不重要。 當我給他發送一個$savedPath時,我需要從包含路徑+「;」的文本文件中刪除該行,與他的父母一樣。例如:

$savedPath = C:\folder\folder2\folder3 
$fPath = C:\folder 

然後將含有這些字符串3行被刪除:

C:\folder\folder2\folder3; 
C:\folder\folder2; 
C:\folder; 

廣東話管理,使其工作...

+2

你的問題有點不清楚。你能提供一個你的輸入文件和預期的輸出文件的例子嗎? –

+0

包含文件夾中的文件看起來像這樣: C:\文件夾中; 12; 2001年 C:\文件夾\文件夾; 85; 845 C:\文件夾2; 45; 9865 等等......它包含了不同的信息我需要其他功能,但這並不重要。我想要做的是刪除那些包含我發送給函數的路徑,如果我發送「C:\ folder」,那麼前面的例子將被替換爲 C:\ folder2 – Kikopu

回答

0

我終於用這個命令:

$result = Get-Content C:\folder\logs.txt 
$result | Where-Object {$_ -notmatch [regex]::escape($savedPath)} | Set-Content C:\folder\logs.txt 

似乎它工作正常!