编写ChildItem列表以获取CSV文件的路径列表

时间:2011-05-16 18:37:32

标签: powershell export-to-csv

我要做的是拥有这样的结束CSV文件:

path,get-childItem
path,get-childItem
path,get-childItem

我对powershell很新,所以我现在遇到的问题不是错误,而是实际上知道该怎么做

到目前为止,这是我的代码:

$data = gc "c:\Documents and Settings\user\Desktop\paths.txt"
ForEach($line in $data) {
$subName = Get-ChildItem "$line"
write-host $line","$subName
#Export-Csv -Path "C:\Documents and Settings\reidli\Desktop\mytest.csv" -Force "true" -InputObject $output 

所以我正在读取paths.txt中的路径列表,其中每一行是不同的路径 $ subName是我想要的儿童列表,是正确的 当我写主机时,输出实际上是:路径,孩子 commantented是我试图导出csv的地方,但这不会起作用,因为它会覆盖每个路径的现有csv

有人可以帮我在foreach循环中获取每一行,并为每个路径和子项创建一个.csv文件吗?

2 个答案:

答案 0 :(得分:3)

根本就不要使用export-csv。 CSV是以逗号分隔的纯文本文件。这使得它易于导出:

$data = gc "c:\Documents and Settings\user\Desktop\paths.txt"
Remove-Item "C:\Documents and Settings\reidli\Desktop\mytest.csv" -ea 0
ForEach($line in $data) {
  $subName = Get-ChildItem "$line"
  write-host $line","$subName
  "$line,$subName" | Add-Content "C:\Documents and Settings\reidli\Desktop\mytest.csv" 
}

顺便说一句。你真的希望子文件空间分开吗?这是你将Get-ChildItem转换为字符串

时得到的结果

答案 1 :(得分:0)

试试这个:

$data | select $_ , @{L="subname";E=@{(gci $_)}} | Export-Csv "C:\Documents and Settings\reidli\Desktop\mytest.csv" -force