我有这个代码,它将“segment99”附加到文本文件的开头,并重新创建具有相同名称加后缀“_99”的整个文件。我有两个问题:1)需要很长时间才能运行。 2)修改文件的内容 - 如格式化和特殊字符,如小方块(在记事本中打开时看起来像小方块)。
我现在正在使用的代码:
Begin
{
$PathData = '<<ESB_Data_Share_HSH>>\RwdPnP'
Get-ChildItem $PathData -Filter '*.txt' | %{
$Start = $true
Get-Content $_.FullName | .{Process{
if ($Start) {
'"segment99"' + $_
$Start = $false
}
else {
$_
}
}} | Set-Content ($_.FullName -replace '\.txt$', '_99.txt')
}
}
请建议一个新代码,当给定目标文件夹时应该: -catch第一个文件,将“segment99”附加到第一行的开头(在记事本中打开时左上角),并使用相同名称+“_ 99”作为后缀保存。 - 到下一个文件并执行相同的操作 - 这一直持续到文件夹中的所有文件都被修改
答案 0 :(得分:0)
请勿使用Get-Content
。通过[System.IO.File]::Open()
API读取和写入您的文件。读取和写入chunk-by-chunk文件,而不是像Get-Content那样将整个文件加载到内存中。