【发布时间】:2016-08-10 16:38:31
【问题描述】:
我正在尝试用 PowerShell 脚本替换多个文件和多个文件夹中的一行:
Get-ChildItem -Filter '*.txt' | ForEach-Object {
$content = Get-Content $_
$content[7] = ' rel_nr constant "{0}"' -f $releasenr
$content | Set-Content -Path $_.FullName
}
如果文件与脚本位于同一文件夹中,则脚本可以正常工作,但只要我尝试实施
Get-ChildItem -Path C:\sample -Filter '*.txt' | ForEach-Object {
脚本返回一个 RuntimeException:
无法索引到空数组。
在 C:\Users\mosermich\Desktop\Import-Datan-Uploader\Uploader.ps1:158 Char:9
+ $content[7] = ' rel_nr 常量“{0}”' -f $releasenr
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
我做错了什么?
【问题讨论】:
-
请显示准确的、未更改的错误消息。
C:\sample是否包含 .txt 文件?所有这些文件都至少有 8 行吗? -
我已将错误消息添加到问题中。该文件夹确实包含文件,每个文件至少有 30 多行。
标签: powershell