Powershell 我正在尝试创建一个新文件,并根据输入参数向新文件添加内容

Powershell 我正在尝试创建一个新文件,并根据输入参数向新文件添加内容,powershell,Powershell,我正在尝试创建powershell脚本,该脚本将根据输入参数(计数器、文件名)创建新文件并在其中添加内容。 对于每个以Ab开头的标题行,将创建一个新文件,并从输入文件中添加该行。 一旦该行已经写入,下次将不会在新文件中再次写入该行。结束行以Br开头,但在调试时出错 [DBG]>>>在以下位置停止:$\u.PSParentPath.Replace(“Microsoft.PowerShell.Core\FileSystem::”,“”) 代码示例 $fileinput = Get-Content c

我正在尝试创建powershell脚本,该脚本将根据输入参数(计数器、文件名)创建新文件并在其中添加内容。
对于每个以Ab开头的标题行,将创建一个新文件,并从输入文件中添加该行。
一旦该行已经写入,下次将不会在新文件中再次写入该行。结束行以Br开头,但在调试时出错

[DBG]>>>在以下位置停止:$\u.PSParentPath.Replace(“Microsoft.PowerShell.Core\FileSystem::”,“”)

代码示例

$fileinput = Get-Content c:\abc.txt
$fileinput1 = Get-Content c:\abc1.txt

foreach($line in $fileinput)
 {
    $array = $line.split(',')
    test-param $array[0] $array[1]
}

function test-param {
param ([int]$input1, [String]$input2)
$chunk = 0
foreach($line in $fileinput1) {
    if ($line.substring(0,2) -eq 'Ab')
    {
        $chunk++;
        New-Item -Itemtype 'File' -Path "d:\$input2"   
    }
    if ($chunk -eq $input1 -And $line.substring(0,2) -eq 'Br')
    {
        Add-Content -Path "d:\$input2" -Value $line
        break
    }
    Add-Content -Path "c:\$input2" -Value $line
}
}

我建议强制$input2键入“string”-如果不是字符串,则无法使用变量来构造路径

确实需要查看两个输入文件的一些示例内容,以便能够进一步进行评论


纯粹从优化的角度来看,我会将$fileinput1的内容加载到test param函数之外的数组中。每次调用test param函数时,您都会再次加载整个文件,这会减慢速度并增加内存使用。

IIRC New Item需要一个
-Name
-Value
参数根据
帮助New Item-Full
-Name
是必需的参数,但示例3和示例4不使用它。