我有一个保存文件路径信息的CSV。如果我将单元格合并在一起并在它们之间添加“/”,就可以创建完整的文件路径。有时这些单元格可以是空的,或者其中有多个目录。Eg.桌面/文件夹A/FolderB
因此,我有了剧本:
Import-Csv -Path 'test.csv' |
Select-Object @{Name='Path';Expression={$_.Folder1, "/" ,$_.Folder2, "/",$_.Folder3, "/",$_.Folder4, "/",$_.Folder5, "/", $_.Folder6, -join ','}} |
Export-Csv 'OutputTestFile.csv' -NoTypeInformation
这将生成输出测试文件,该文件看起来有点像:
人力资源中心///人力资源中心/文件//,
人力资源中心/员工服务//员工服务-内部/员工服务/程序/a/b/c,
HR/HR业务合作伙伴//人才
由于双斜杠的存在,这不利于创建干净的文件路径。空间也是一个问题。我甚至不需要将它导出回CSV。我需要能够获取文件路径的列表/数组,以便在环境中创建文件结构。
理想情况下,我希望文件路径看起来像这样:
人力资源/人力资源业务合作伙伴/人才
HR Central/HR Central/Documents/,
如果您使用PSObject
,这可能会很短。如果你只是想要一个路径数组,我会在一个ForPerage-Object
循环中完成:
Import-Csv test-csv | Select Folder[1-6] | ForEach-Object {
$_.psobject.Properties.where({$_.Name -match '^Folder[1-6]$' -and !([string]::IsNullOrWhiteSpace($_.Value))}).Value -join '/' -replace '(?<=/) | (?=/)'}
}
许多选择之一:
Import-Csv -Path 'test.csv' |
Select-Object @{
Name = 'Path'
Expression = {
$row = $_
$folders = @()
1..6 | ForEach-Object {
$folder = $row."Folder$_"
if ($folder -and -not ([String]::IsNullOrEmpty($folder.Trim())))
{
$folders += $folder.Trim()
}
}
return $folders -join "/"
}
}
另一种选择:
foreach ( $csvLine in $(Import-Csv -Path 'test.csv')) {
$rawPath = $csvLine | Select-Object @{
Name='Path';
Expression = { @( $_.Folder1,
$_.Folder2,
$_.Folder3,
$_.Folder4,
$_.Folder5,
$_.Folder6) -join '/'
}
}
# remove multiple solidi
$rawPath.Path.Split(
'/',
[System.StringSplitOptions]::RemoveEmptyEntries) -join '/'
}
我有一个CSV文件,它有重复的列标题,所以我不能使用导入CSV来完成这项工作。标题名称是动态的。我需要得到第三列、第四列以及之后的每四列(例如:从0列开始,第2列、第3列、第7列、第11列、第15列…)。 我有重复列名的原因是头3需要与头0相同的名称,以四个组为一组。0个 我使用“获取内容”,因为我不知道如何使用“导入Csv”实现此功能。我必须使用Import Csv来获取列数,而我无法用get
我是PowerShell的新手。我正在尝试创建一个脚本,它将通过CSV和Active Directory组进行查看。如果用户不在CSV中,我想删除该用户(当前正在使用写输出进行测试)。我必须使用UserPrincipalName。我的CSV只是 排名,编号 某物,3333//此用户是AD GROUP 某物,2222//此用户不在AD组中 目前,我想让它只输出3333,但它两者都输出。 导入模块活动
我对powershell非常陌生,我不知道如何将我的数组放入csv文件中,在该文件中,每个字符串都会进入一个新行。下面是一些示例代码。 当我检查csv文件时,所有的输出都显示在一行上,而不是在行的特定列中迭代。任何帮助将是非常有用和感激
我需要将数据添加到CSV文件的最后一列。我拥有的测试文件如下所示: 我已经设法解析了CSV,但是在最后一列“SKILL”中添加数据是很困难的。要求是在每行的最后一列添加“Java”一词 请注意,添加到最后一列的值在各行之间保持不变。
问题内容: 我正在尝试将CSV文件读入(字符串的)列表列表,将其传递以从数据库中获取一些数据,构建新数据列表的新列表,然后传递该列表列表,以便写入新的CSV文件。我到处都看了,似乎找不到如何做的例子。 我宁愿不使用简单的数组,因为文件的大小会有所不同,而且我也不知道该如何使用数组的尺寸。我没有处理文件的问题。我只是不确定如何处理列表列表。 我发现的大多数示例都将创建多维数组或在从文件中读取数据
问题内容: Google讨论了有关清理Web访问查询的各种讨论,但我找不到任何解决我所关注的问题的方法: 在ac#程序中清理用户输入数据。这必须通过可逆的转换来完成,而不是通过移除来完成。作为问题的简单示例,我不想破坏爱尔兰的名字。 最好的方法是什么,有没有执行此功能的库函数? 问题答案: 这取决于您所使用的SQL数据库。例如,如果要在MySQL中使用单引号文字,则需要使用反斜杠Dangerous