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

时间:2017-06-24 15:32:43

标签: powershell

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

  

[DBG] GT;>>停在:$ _。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
}
}

1 个答案:

答案 0 :(得分:0)

我建议强制$ input2键入" string" - 如果它不是一个字符串,它就不能使用该变量来构造路径。

真的需要查看两个输入文件的一些示例内容才能进一步评论。

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