Búsqueda de sitios web

Cómo recorrer carpetas en PowerShell (con ejemplo)


A menudo, es posible que desee utilizar PowerShell para recorrer todas las carpetas de un directorio y realizar alguna tarea.

Puede utilizar la siguiente sintaxis básica para hacerlo:

Get-ChildItem -Recurse -Directory | ForEach-Object {
    New-Item -ItemType file -Path "$($_.FullName)" -Name "new_data.txt"
}

Este ejemplo en particular recorre cada carpeta del directorio actual, incluidas todas las subcarpetas, y crea un nuevo archivo llamado new_data.txt en cada carpeta.

Tenga en cuenta que usamos Get-ChildItem -Recurse -Directory para recuperar de forma recursiva cada carpeta en el directorio actual.

Luego usamos el cmdlet ForEach-Object para realizar alguna acción en cada carpeta.

Siéntete libre de utilizar cualquier código que desees en ForEach-Object para realizar cualquier tarea específica que desees en cada carpeta.

El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.

Ejemplo: cómo recorrer carpetas en PowerShell

Podemos usar la siguiente sintaxis con el cmdlet Get-ChildItem para ver primero todas las carpetas y subcarpetas en el directorio actual:

Get-ChildItem -Recurse -Directory

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Podemos ver que el directorio actual tiene las siguientes carpetas:

  • datos-este
  • datos-norte
  • datos-sur
  • datos-oeste

Ninguna de estas carpetas tiene subcarpetas.

Supongamos que queremos recorrer cada una de estas cuatro carpetas e insertar un nuevo archivo de texto llamado new_data.txt.

Podemos utilizar la siguiente sintaxis para hacerlo:

Get-ChildItem -Recurse -Directory | ForEach-Object {
    New-Item -ItemType file -Path "$($_.FullName)" -Name "new_data.txt"
}

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Podemos usar el cmdlet Get-ChildItem una vez más para ver el contenido actualizado de las carpetas.

Por ejemplo, podemos usar la siguiente sintaxis para ver el contenido de la carpeta denominada east-data:

Get-ChildItem east-data

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Podemos ver que esta carpeta contiene un nuevo archivo llamado new_data.txt.

Si utilizamos el cmdlet Get-ChildItem para ver el contenido de cada carpeta, encontraremos que cada carpeta contiene un archivo de texto llamado new_data.txt.

Siéntase libre de utilizar una sintaxis similar para recorrer cada carpeta en su propio directorio y realizar alguna acción específica.

Artículos relacionados