你可以试试这个:
function setConfig( $file) {
$content = Get-Content $file
$content -remove '$content[1..14]'
Set-Content $file
}
我想创建一个函数,通过它我可以传递文件,以便删除特定的行或一堆行
答案 0 :(得分:1)
我不记得-remove
是PowerShell运营商,我应该想到你会遇到的错误:
意外的令牌' -remove'在表达或陈述中。
此外,您要阻止PowerShell将代码扩展为单引号,因此它被视为文字字符串" $ content [1..14]"。
我将冒昧地假设您正在尝试从文件中删除前14行代码,同时保留第一个是?
我使用以下代码创建一个包含30行的测试文件。
1..30 | Set-Content C:\temp\30lines.txt
然后我们使用您函数的更新版本
function setConfig($file){
$content = Get-Content $file
$content | Select-Object -Index (,0 + (14..$($content.Count))) | Set-Content $file
}
使用-Index
的{{1}},我们得到第一行Select-Object
,然后在第14行,0
之后添加剩余的行。自从我们组合两个数字数组以来,(14..$($content.Count)))
需要逗号。更新的文件内容如下所示。更改0
值以满足您的需求。
-Index