powershell - 在powershell中使用-ReadCount和Select -Skip从文件中获取内容未输出预期结果
问题描述
背景
我正在从静态内容、动态内容和另一个文件内容的混合中构建一个文件输出,但某些操作没有按我的预期输出内容。
静态内容是 text @LANGUAGE\r\nENGLISH\r\n\r\n@FIELDS
,然后我附加一些输入 CSV 文件的第一个标题行,然后是 text \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
从Get-Content
脚本的违规行上的 cmdlet 中删除 ,并且文件内容按预期输出。
问题
为什么我不能拥有该脚本行的所有三个组件并获得我期望的输出?
解决方案
推荐阅读
- c# - Unity3d Resources.Load() 为静态变量返回 null
- python - 在 DataFrame 中填充 NaN 的快速方法
- html - 标题 div 背景 100% 宽度,固定高度
- sql - 处理数组和无数组条目的 Postgres JSONB 列选择语句
- python - FastAPI docker-compose 文件未找到错误
- azure - 在 Azure 通信服务中选择不同的音频流
- firebase - 使用最终分数更新 Firebase 并显示给用户
- python-3.x - HtmlResponse requests.response 之间的区别
- c# - Unity3D - 当平台旋转时,刚体通过平台对撞机进行定相
- c# - MouseUp 和 MouseDown 不适用于 usercontrol 的子级