Error: You must provide a value expression on the right hand side of the '-' operator
Error: You must provide a value expression on the right hand side of the '-' operator
你可以试试这个:
function setConfig( $file) {
$content = Get-Content $file
$content -remove '$content[1..14]'
Set-Content $file
}
我想创建一个函数,通过它我可以传递文件,以便它删除特定的行或一堆行
我不记得 -remove
是 PowerShell 操作员,我认为你会遇到的错误是:
Unexpected token '-remove' in expression or statement.
您还阻止 PowerShell 扩展单引号中的代码,因此它被视为文字字符串“$content[1..14]”。
我冒昧地假设您正在尝试从文件中删除前 14 行代码,同时保留第一行是?
我使用以下代码创建了一个包含 30 行的测试文件。
1..30 | Set-Content C:\templines.txt
然后我们使用您函数的这个更新版本
function setConfig($file){
$content = Get-Content $file
$content | Select-Object -Index (,0 + (14..$($content.Count))) | Set-Content $file
}
使用 Select-Object
的 -Index
我们得到第一行 ,0
然后在第 14 行 (14..$($content.Count)))
之后添加剩余的行。 0
的 from 中需要逗号,因为我们要组合两个数字数组。更新后的文件内容如下所示。更改 -Index
值以满足您的需要。
1
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
你可以试试这个:
function setConfig( $file) {
$content = Get-Content $file
$content -remove '$content[1..14]'
Set-Content $file
}
我想创建一个函数,通过它我可以传递文件,以便它删除特定的行或一堆行
我不记得 -remove
是 PowerShell 操作员,我认为你会遇到的错误是:
Unexpected token '-remove' in expression or statement.
您还阻止 PowerShell 扩展单引号中的代码,因此它被视为文字字符串“$content[1..14]”。
我冒昧地假设您正在尝试从文件中删除前 14 行代码,同时保留第一行是?
我使用以下代码创建了一个包含 30 行的测试文件。
1..30 | Set-Content C:\templines.txt
然后我们使用您函数的这个更新版本
function setConfig($file){
$content = Get-Content $file
$content | Select-Object -Index (,0 + (14..$($content.Count))) | Set-Content $file
}
使用 Select-Object
的 -Index
我们得到第一行 ,0
然后在第 14 行 (14..$($content.Count)))
之后添加剩余的行。 0
的 from 中需要逗号,因为我们要组合两个数字数组。更新后的文件内容如下所示。更改 -Index
值以满足您的需要。
1
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30