背景
我正在由静态内容,动态内容和另一个文件内容的混合物构造文件输出,但是某些操作未按我期望的那样输出内容。
静态内容是文本@LANGUAGE\r\nENGLISH\r\n\r\n@FIELDS
,然后我将附加一些输入CSV文件的第一行标题,然后附加文本\r\n@$set_name
,最后附加输入CSV文件的每一行线。
Powershell代码
$set_name = "ITEM_SET"
$inputCSVFile = "C:\temp\in\$set_name.csv"
$outputTXTFile = "C:\temp\out\$set_name.txt"
$staticContent = "@LANGUAGE`r`nENGLISH`r`n`r`n@FIELDS"
$dynamicContent = "`r`n@$set_name"
# output content to file
$staticContent | Out-File $outputTXTFile
Get-Content $inputCSVFile | Select -First 1 | Out-File $outputTXTFile -Append
$dynamicContent | Out-File $outputTXTFile -Append
# content from the next line is not appearing in the output file
Get-Content $inputCSVFile -ReadCount 1000 | Select -Skip 1 | Out-File $outputTXTFile -Append
结果
输出文件的标题内容为@LANGUAGE...
,CSV文件的第一行的标题为A1A_A1,A1A_A2,A1A_A3,A1A_N,A2A_A1,...
,动态文件的行为@ITEM_SET
,但是我缺少来自其余输入CSV文件0,0,0,1,0,...
的数据。
其他信息
输入的CSV文件范围从几行到数千行。
我尝试从脚本的有问题的行的管道末尾删除最后一个Out-File
,并且控制台输出符合预期。
我尝试从脚本的有问题的行中的管道中间删除Select -Skip 1
,并按预期输出文件内容。
我尝试从脚本中有问题的行的-ReadCount 1000
cmdlet中删除Get-Content
,并且文件内容按预期输出。
问题
为什么我不能拥有该脚本脚本的所有三个组件,而不能得到我期望的输出?