Escribir una lista de ChildItem para obtener una lista de rutas a un archivo CSV

Lo que estoy intentando hacer es tener un archivo CSV final como este:

ruta, get-childItem
ruta, get-childItem
ruta, get-childItem
etc.

Soy muy nuevo en PowerShell, por lo que, en este momento, el problema que tengo no es con errores, sino más bien saber qué hacer.

Aquí está mi código hasta ahora:

$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 

Así que estoy leyendo una lista de rutas de paths.txt donde cada línea es una ruta diferente $ subName es la lista de niños que quiero y es correcta y cuando escribo-host, la salida es de hecho: ruta, los niños comentados es donde Intenté exportar csv, pero esto no funcionará, ya que sobrescribiría el csv existente para cada ruta.

¿Alguien puede ayudarme a tomar cada línea en el bucle foreach y crear un archivo .csv con cada ruta e hijos?

preguntado el 16 de mayo de 11 a las 18:05

De acuerdo con la pregunta de PanikT a continuación, ¿qué está tratando de lograr? Una línea con 1337 nombres de archivo en la segunda columna no me parece muy apropiada. -

Solo para hacer un seguimiento rápido. Estoy de acuerdo en que una línea con un nombre de archivo separado por espacios de 1337 no parece atractiva. Sin embargo, conozco los archivos en cuestión y lo que hay detrás de ellos (no más de 4). La intención de este script no es determinar qué hay allí, sino simplemente crear un archivo que los enumere todos. De esa manera, el script se puede ejecutar en una fecha posterior para ver si se realizaron actualizaciones. El .csv de salida era feo tiene un infierno :) pero exactamente lo que necesitaba. ¡Gracias PanikT! -

2 Respuestas

simplemente no use export-csv en absoluto. CSV es un archivo de texto sin formato separado por comas. lo que facilita la exportación:

$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" 
}

por cierto. ¿De verdad quieres que el espacio de los archivos secundarios esté separado? es lo que obtienes cuando conviertes Get-ChildItem en una cadena

contestado el 16 de mayo de 11 a las 22:05

Prueba esto:

$ datos | seleccione $ _, @ {L = "subnombre"; E = @ {(gci $ _)}} | Exportar-Csv "C: \ Documents and Settings \ reidli \ Desktop \ mytest.csv" -force

contestado el 16 de mayo de 11 a las 23:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.