2015-11-27 172 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 

似乎它工作正常!