2011-06-27 10 views
7

Tengo un script simple que lee los nombres de las carpetas y los emite en un archivo de texto. Me di cuenta de que obtenía más resultados de los que quería, así que usé el cmdlet select-item para seleccionar solo la propiedad del nombre de la tabla hash. El problema es que todavía hay todo el espacio en blanco que los datos omitidos habrían llenado normalmente, lo que no ayuda a mi problema ya que el espacio en blanco destruirá mi script.Ayuda de Powershell Parsing: cómo generar una lista de nombres de carpetas en un archivo de texto

He probado algunas [expresiones regulares] comandos que se deben eliminar los espacios en blanco con (/ S +), pero en realidad no lo saben muy bien que estaba usando un código tratando de ajustar de un ejemplo alguien me ayudó con. El nombre del tema es el mismo que el título aquí y también está en este sitio. ¡Cualquiera que me pueda ayudar lo agradecería!

Básicamente, no puedo encontrar la manera de dar salida a los nombres de las carpetas en un archivo de texto simple con cero espacio en blanco (1 línea por nombre de la carpeta).


$accFolder = Read-Host "Enter the account folder container....: " 

$dataArray = Get-ChildItem "D:\influxcyst\$accFolder" | select-object name 

$dataArray 
$dataArray | Out-File $HOME\desktop\$accFolder.txt 

$newArray = get-content $HOME\desktop\$accFolder.txt 

#[regex]$regex = "\s(\S+)\s" 
#[regex]::matches($newArray,$regex) | foreach-object {$_.groups[1].value} 

Respuesta

16

Prueba con esto:

Get-ChildItem C:\Source\Path | ForEach-Object { $_.Name } > C:\Output\File.txt 

relacionados:

+0

DOH ni siquiera pensar en usar foreach así. ¡Gracias, ese fue el truco! – Matthew

+0

Pregunta rápida, es el> sinónimo de | ¿archivo externo? – Matthew

+0

@Matthew Sí, el operador '>' redirige la salida a un archivo. –

0
$accFolder = Read-Host "Enter the account folder container....:" 
cmd /c dir /b /ad D:\influxcyst\$accFolder > $HOME\desktop\$accFolder.txt 
1

Usted puede obtener sólo los nombres con el interruptor -Nombre:

$accFolder = Read-Host "Enter the account folder container....: " 
Get-ChildItem -Name "D:\influxcyst\$accFolder" | Out-File $HOME\desktop\$accFolder.txt 
Cuestiones relacionadas