我有一个保存文件路径信息的CSV文件。如果将单元格合并在一起并在它们之间添加“ /”,则可以创建完整的文件路径。有时,这些单元格可以为空或其中包含多个目录。例如。台式机/文件夹A /文件夹B
因此,我有了脚本:
Import-Csv -Path 'test.csv' |
Select-Object @{Name='Path';Expression={$_.Folder1, "/" ,$_.Folder2, "/",$_.Folder3, "/",$_.Folder4, "/",$_.Folder5, "/", $_.Folder6, -join ','}} |
Export-Csv 'OutputTestFile.csv' -NoTypeInformation
生成的输出测试文件看起来像:
人力资源中心/ / /人力资源中心/文件/,
人力资源中心/员工服务/ /员工服务-内部/员工服务/ Procedures / a / b / c,
人力资源/人力资源业务合作伙伴/ /人才与收购-内部/人力资源业务合作伙伴/,
由于使用了双斜杠,因此无法生成干净的文件路径。空间也是一个问题。我什至不需要将其导出回CSV。我只需要能够捕获文件路径的列表/数组,以便可以在环境中创建文件结构。
理想情况下,我希望文件路径如下所示:
人力资源/人力资源业务伙伴/人才与收购-内部/人力资源业务伙伴/,
HR Central / HR Central / Documents /,
另外的选择:
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 '/'
}
我之所以选择这个答案,是因为我还想知道如何加入不同的文件夹名称,并且它确实得到了扩展,所以我可以看到发生了什么。谢谢偷看!