PowerShell: Cómo guardar nombres de carpetas en un directorio en una matriz
A menudo, es posible que desee guardar los nombres de todas las carpetas de un directorio concreto en una matriz de PowerShell.
Puede utilizar la siguiente sintaxis para hacerlo:
$arr = Get-ChildItem c:\some\path -Directory | ForEach-Object {$_.Name}
Este ejemplo en particular guarda todos los nombres de carpetas en el directorio que especificamos en una matriz llamada $arr.
Esto es lo que hacen los distintos comandos:
- Get-ChildItem: recupera todos los elementos de una ruta específica
- -Directory: Especifica que solo queremos recuperar carpetas
- ForEach-Object {$_.Name}: devuelve solo el nombre de la carpeta
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: Cómo guardar nombres de carpetas en PowerShell
Supongamos que queremos guardar todas las carpetas en la siguiente ubicación en una matriz:
c:\users\bobbi\datPrimero podemos usar el cmdlet Get-ChildItem para ver todos los archivos y carpetas en este directorio:
Podemos ver que este directorio contiene tres carpetas:
- atletas
- entrenadores
- gerentes
También contiene tres archivos:
- equipos1.txt
- equipos2.txt
- equipos3.txt
Supongamos que nos gustaría guardar solo los nombres de las carpetas en una matriz.
Podemos utilizar la siguiente sintaxis para hacerlo:
$arr = Get-ChildItem c:\users\bobbi\dat -Directory | ForEach-Object {$_.Name} La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que cuando generamos los valores de $arr podemos ver que solo contiene los nombres de las carpetas del directorio que especificamos.
También podemos usar notación entre corchetes para recuperar carpetas específicas de la matriz.
Por ejemplo, podemos usar la siguiente sintaxis para recuperar el nombre de la primera carpeta de la matriz:
$arr[0]La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Observe que esto devuelve atletas, que es el nombre de la primera carpeta de la matriz.
Nota: Puede encontrar la documentación completa para el cmdlet ForEach-Object en PowerShell aquí.


