【发布时间】:2021-03-04 04:50:18
【问题描述】:
好吧,我对 PowerShell 仍然很陌生,我在这里筛选了几个不同的线程,试图找到解决这个问题的最佳方法。 This 是我能找到的最接近我需要修改文件的方式。如果他们有更好的方法来解决这个问题,我会全力以赴,就像我说的对 powershell 来说还是很新的。
目标
- 我想删除文本文件中的整个组,然后将其写入同一个文件(如果可能)
问题
- 我想通过随机数删除第 1 行。
- 组中的第一行始终相同,并且始终位于相同的行号上。
- 该组的最后一行始终相同,但绝不会在同一行号上。
- 我已经得到了我想要的输出,但是我在将它写回同一个文件时遇到了问题。
- 我尝试了 -replace 和 set-content,但在这部分遇到了错误。
文件夹中的文本文件示例。
I want this deleted
here
here
here
here
To here
but i want this kept in file 1
文件 2
I want this deleted
here
here
here
here
here
here
To here
but i want this kept in file 2
以下是我想出的。
$files = Get-ChildItem
Foreach-Object {
#Targeting the specific file
$keep = $true
Get-Content $files | Where-Object {
if ( $_.StartsWith("I want this deleted")) {
$keep = $false
} elseif ( -not $keep -and $_.StartsWith("but") ) {
$keep = $true
}
$keep
} #End of where Object
}#End for Foreach loop
Output
but i want this kept in file 1
but i want this kept in file 2
【问题讨论】:
-
用户选择字符串或正则表达式来获取文本并使用 -replace 'Target String'、'' 和 Set-Content cmdlet 或仅输出到新文件并存档/删除原始文件。
-
我们还没有收到您的来信.. 任何给定的答案是否解决了您的问题?如果是这样,请通过单击左侧的 ✓ 图标来考虑accepting。这将帮助其他有类似问题的人更轻松地找到它。
标签: powershell