Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 将标题添加到'|';Powershell中的分隔CSV文件?_Sharepoint_Powershell_Csv_Powershell 3.0 - Fatal编程技术网

Sharepoint 将标题添加到'|';Powershell中的分隔CSV文件?

Sharepoint 将标题添加到'|';Powershell中的分隔CSV文件?,sharepoint,powershell,csv,powershell-3.0,Sharepoint,Powershell,Csv,Powershell 3.0,我想知道是否有人知道在不破坏/干扰数据本身的情况下实现这一点的方法 我有一个以“|”分隔的CSV文件,它是通过使用SPQuery从Sharepoint检索数据创建的,并使用out文件导出(由于导出csv不是一个选项,因为我必须将数据存储在一个变量中,这会占用服务器的RAM,因此远程查询也不起作用,因此我必须在服务器本身上执行此操作)。尽管如此,我仍有所需的数据,但我想执行一些操作,移动和自动计算excel文件中的某些数据,并导出所述excel文件 我现在遇到的问题是,我需要一个文件头。我尝试使用

我想知道是否有人知道在不破坏/干扰数据本身的情况下实现这一点的方法

我有一个以“|”分隔的CSV文件,它是通过使用SPQuery从Sharepoint检索数据创建的,并使用out文件导出(由于导出csv不是一个选项,因为我必须将数据存储在一个变量中,这会占用服务器的RAM,因此远程查询也不起作用,因此我必须在服务器本身上执行此操作)。尽管如此,我仍有所需的数据,但我想执行一些操作,移动和自动计算excel文件中的某些数据,并导出所述excel文件

我现在遇到的问题是,我需要一个文件头。我尝试使用以下代码:

$header ="Name|GF_GZ|GF_Title|GF_UniqueId|GF_OldId|GFURL|GF_ITEMREDIRECTID"
$file = Import-Csv inputfilename.csv -Header $header | Export-Csv D:\outputfilename.csv
在powershell中,但这里的问题是,当我执行第二次导出Csv时,它将在任何有逗号的地方进行分隔,从而将其删除,我需要数据保持完整

我在导入和导出路径上都尝试过使用-different“|”设置,但无论我做什么,它似乎都会切断数据。有没有更好的方法可以简单地在顶部添加一行(一个标题),而不破坏现有的文件结构? 我发现使用分隔符(如-delimiter'°)或任何其他特殊大小写字符将完全消除我的问题,但我永远无法确定这样的字符是否会出现在数据集中,因此(如前所述)我正在寻找一个更“优雅”的解决方案


谢谢

您有一个选择,那就是先创建带有标题的原始CSV。然后在导出SharePoint数据时,使用switch-Append in the Out File命令将SP数据附加到CSV中。

我甚至不会费心去处理CSV格式的数据

$header ="Name|GF_GZ|GF_Title|GF_UniqueId|GF_OldId|GFURL|GF_ITEMREDIRECTID"
$in_file = '.\inputfilename.csv'
$out_file = '.\outputfilename.csv'
$x = Get-Content $in_file
Set-Content $out_file -Value $header,$x    

对于其中的一些,可能有一个更为雄辩/精炼的双行程序,但这应该能满足您的需要。

是的,这是我考虑过的一个选项,但我希望整个过程尽可能实现自动化,接下来的步骤(我仍然需要编写代码)在excel中处理多个输出文件中的数据,然后执行计算,以便我的上级能够快速查看数据。因此,虽然这在技术上是一个解决方案,但在自动化方面对我没有帮助。感谢您的评论,尽管我很感激。我不确定是否遵循,因为您是首先自动生成带有标题的CSV,然后将其附加到该CSV。您是否需要有关如何创建带有标题的CSV的PowerShell脚本?我假设您可以解决这个问题。我不是指您应该手动创建此文件。这是我的代码Do{$itemcoll=$spSourceList.GetItems($query);foreach($itemcoll中的item){#write host$($item.Url)$($item[“Sachbearbeiter”]);$Name=$item[“Name”];$GF_GZ=$item[“GF_GZ”];$GF_Title=$item[“GF_Title”];$GF_UniqueId=$item[“UniqueId”];$GF_OldId=$item[“olditem”];$ITyp2=$item[“Content Type”]编写输出“$Name |$GF |$GF |$GF |$GF | u GZ |$GF | u Title |$GF |$GF | u OldId |$GFURL |$item |$item.UniqueId”|输出文件-附加D:\BG(SOF| u SP01 | u Abgeschlossen | u 14Jan.csv#($item.Url)|($ite我没有首先将查询输出保存到变量,并使用$var+=result from loop添加数据的原因是,大量的数据量正在破坏服务器的RAM(powershell使用3-4G的RAM只是为了临时保存数据),而使用out file进行simlpy追加将起作用。我很清楚,Powershell从3.0或4.0开始就支持-append作为导出csv命令,但我们在服务器上没有该版本。因此out file是唯一的选项。很抱歉响应延迟,但是out file支持-append开关,并且从3.0版本开始就有了。什么版本你在跑步吗?