Búsqueda de sitios web

PowerShell: obtenga la ruta completa del archivo


Obtener la ruta completa del archivo en PowerShell

Para obtener la ruta completa del archivo en powershell:

  • Vaya a la carpeta donde está el archivo. También puede ir a cualquier carpeta principal.
  • Utilice Get-ChildItem con la opción -Recurse.
  • Canalícelo al cmdlet where-object para filtrar el nombre de archivo. En este ejemplo, hemos dado el nombre de archivo como test.ps1
  • Canalícelo al cmdlet forEach-Object y obtenga la propiedad FullName del objeto actual.

Utilice el cmdlet Get-ChildItem:

Get-ChildItem -Recurse |Where-Object {($_.name -eq "test.ps1")}| %{$_.FullName}

PRODUCCIÓN :

D:\PowerShell\test.ps1

A continuación se muestran varios ejemplos para obtener la ruta completa de los archivos en el directorio de PowerShell. Cada opción utilizará diferentes combinaciones con el cmdlet Get-ChildItem.

Usando el cmdlet Get-ChildItem:

Para obtener la ruta completa de los archivos en el directorio, utilice el cmdlet Get-ChildItem en PowerShell.

Utilice el cmdlet Get-ChildItem:

Get-ChildItem -Path "D:\PowerShell\Testing" -Recurse | %{$_.FullName}

PRODUCCIÓN :

D:\PowerShell\Testing\important
D:\PowerShell\Testing\a.py
D:\PowerShell\Testing\abc.txt
D:\PowerShell\Testing\dummy.txt
D:\PowerShell\Testing\hello.py
D:\PowerShell\Testing\How neuroencoding improves performance-1.docx
D:\PowerShell\Testing\myApp.py
D:\PowerShell\Testing\myApp2.py
D:\PowerShell\Testing\my_dict.json
D:\PowerShell\Testing\To do.txt
D:\PowerShell\Testing\important\alexa.txt
D:\PowerShell\Testing\important\django.py
D:\PowerShell\Testing\important\neuro.py
D:\PowerShell\Testing\important\python.txt
D:\PowerShell\Testing\important\result.docx

En el código anterior, se utilizó el cmdlet Get-ChildItem para obtener todos los nombres completos de los archivos disponibles en el directorio D:\PowerShell\Testing y su subdirectorio. Aquí, el parámetro -Path puede especificar la ruta del directorio del que queremos obtener la ruta de los archivos.

Veamos todos los parámetros utilizados en el comando anterior uno por uno para entenderlo:

  • El parámetro -Recurse informa a PowerShell que busque de forma recursiva el directorio D:\PowerShell\Testing y todos sus subdirectorios.
  • | se denomina operador de canalización; puede pasar la salida del comando anterior como entrada al siguiente comando. En este ejemplo, pasó todos los nombres de los archivos en el directorio D:\PowerShell\Testing a este comando %{$_.FullName}.
  • % se utiliza como alias del cmdlet ForEach-Object
  • {$_.FullName} muestra la acción que queremos realizar sobre el objeto seleccionado. Como sugiere el nombre, queremos obtener el nombre completo de todos los archivos en el directorio especificado.

Ahora consideremos un escenario en el que debemos extraer todos los archivos .txt del directorio especificado. Para esto, mire el siguiente ejemplo:

Utilice el cmdlet Get-ChildItem:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.txt -Recurse | %{$_.FullName}

PRODUCCIÓN :

D:\PowerShell\Testing\abc.txt
D:\PowerShell\Testing\dummy.txt
D:\PowerShell\Testing\To do.txt
D:\PowerShell\Testing\important\alexa.txt
D:\PowerShell\Testing\important\python.txt

En este ejemplo, el parámetro -Filter se usa con el cmdlet Get-ChildItem para filtrar todos los archivos .txt disponibles en el directorio D:\PowerShell\Testing y sus subdirectorios.

Para obtener la ruta completa del archivo en el directorio actual, use Get-ChildItem sin el atributo de ruta.

Utilice el cmdlet Get-ChildItem:

Get-ChildItem -Recurse | %{$_.FullName}

PRODUCCIÓN :

D:\PowerShell\Testing\important
D:\PowerShell\Testing\a.py
D:\PowerShell\Testing\abc.txt
D:\PowerShell\Testing\dummy.txt
D:\PowerShell\Testing\hello.py
D:\PowerShell\Testing\How neuroencoding improves performance-1.docx
D:\PowerShell\Testing\myApp.py
D:\PowerShell\Testing\myApp2.py
D:\PowerShell\Testing\my_dict.json
D:\PowerShell\Testing\To do.txt
D:\PowerShell\Testing\important\alexa.txt
D:\PowerShell\Testing\important\django.py
D:\PowerShell\Testing\important\neuro.py
D:\PowerShell\Testing\important\python.txt
D:\PowerShell\Testing\important\result.docx

Uso del cmdlet ForEach-Object con Get-ChildItem

Para obtener la ruta completa de los archivos en un directorio, use el cmdlet Get-ChildItem con el cmdlet ForEach-Object en PowerShell.

Utilice el cmdlet ForEach-Object:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.py -Recurse  | ForEach-Object{$_.FullName} 

PRODUCCIÓN :

D:\PowerShell\Testing\a.py
D:\PowerShell\Testing\hello.py
D:\PowerShell\Testing\myApp.py
D:\PowerShell\Testing\myApp2.py
D:\PowerShell\Testing\important\django.py
D:\PowerShell\Testing\important\neuro.py

En este ejemplo, se usó Get-ChildItem con ForEach-Object para filtrar todos los archivos con la extensión .py disponibles en el área especificada. carpeta y sus subcarpetas. Aquí, Get-ChildItem obtuvo recursivamente los nombres de todos los archivos y los pasó al cmdlet ForEach-Object para obtener la ruta completa de cada archivo en el directorio.

Suponga que desea obtener la ruta completa de los archivos con el tamaño de los archivos en el directorio dado y sus subdirectorios.

Utilice el cmdlet ForEach-Object:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter "*.txt" | ForEach-Object { $_.FullName + " has a size of " + $_.Length + " bytes." }

PRODUCCIÓN :

D:\PowerShell\Testing\abc.txt has a size of 814 bytes.
D:\PowerShell\Testing\dummy.txt has a size of 406 bytes.
D:\PowerShell\Testing\To do.txt has a size of 129 bytes.

Podemos observar la ruta de todos los archivos que tienen la extensión .txt con su tamaño. Aquí, se utilizó el parámetro $_.Length para obtener la longitud/tamaño de cada archivo.

Uso del cmdlet Select-Object con Get-ChildItem

Para recuperar la ruta completa de los archivos en un directorio, use Get-ChildItem con el cmdlet Select-Object en PowerShell.

Utilice el cmdlet Seleccionar objeto:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.py -Recurse | Select-Object -ExpandProperty FullName

PRODUCCIÓN :

FullName
--------
D:\PowerShell\Testing\a.py
D:\PowerShell\Testing\hello.py
D:\PowerShell\Testing\myApp.py
D:\PowerShell\Testing\myApp2.py
D:\PowerShell\Testing\important\django.py
D:\PowerShell\Testing\important\neuro.py

En el comando anterior, se usó Select-Object con Get-ChildItem. Es otra forma de obtener la ruta de los archivos disponibles en el directorio especificado. Aquí, se usó Select-Object para seleccionar la propiedad específica del objeto, que era ExpandProperty FullName en nuestro caso. Esto se usó para expandir la propiedad FullName del objeto para obtener la ruta completa de los archivos disponibles en el directorio dado y sus subdirectorios, que era D:\PowerShell\Testing en el ejemplo anterior.

Uso del cmdlet Format-List con Get-ChildItem

Para acceder a la ruta completa de los archivos en un directorio, utilice el cmdlet Get-ChildItem con Format-List en PowerShell.

Utilice el cmdlet Format-List:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.txt -Recurse | Format-List FullName

PRODUCCIÓN :

FullName : D:\PowerShell\Testing\abc.txt
FullName : D:\PowerShell\Testing\dummy.txt
FullName : D:\PowerShell\Testing\To do.txt
FullName : D:\PowerShell\Testing\important\alexa.txt
FullName : D:\PowerShell\Testing\important\python.txt

El cmdlet Format-List se usó en el comando anterior para obtener el resultado como una lista. El ejemplo anterior obtuvo la ruta de los archivos con la extensión .txt disponibles en el directorio D:\PowerShell\Testing y sus subdirectorios. El resultado anterior está formateado y escrito FullName: al inicio de cada ruta de archivo.

Veamos otro ejemplo para obtener todos los archivos con la extensión .docx.

Utilice el cmdlet Format-List:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.docx -Recurse | Format-List FullName

PRODUCCIÓN :

FullName : D:\PowerShell\Testing\How neuroencoding improves performance-1.docx
FullName : D:\PowerShell\Testing\important\result.docx

Este código es similar al anterior. Sin embargo, esta vez obtuvimos la ruta de todos los archivos con la extensión .docx.

Uso del cmdlet Format-Table con Get-ChildItem

Para obtener la ruta completa de los archivos en un directorio, utilice el cmdlet Get-ChildItem con el cmdlet Format-Table en PowerShell.

Utilice el cmdlet Format-Table:

Get-ChildItem -Path "D:\PowerShell\Testing" -Filter *.txt -Recurse | Format-Table FullName  -AutoSize

PRODUCCIÓN :

FullName
--------
D:\PowerShell\Testing\abc.txt
D:\PowerShell\Testing\dummy.txt
D:\PowerShell\Testing\To do.txt
D:\PowerShell\Testing\important\alexa.txt
D:\PowerShell\Testing\important\python.txt

En el fragmento de PowerShell anterior, se usó el cmdlet Format-Table junto con el cmdlet Get-ChildItem para obtener la ruta completa de los archivos con .txt extensión disponible en el directorio especificado y su subdirectorio. Debido al uso del cmdlet Format-Table, la salida se formateó como una tabla con la ruta completa a cada archivo mostrado. Y el parámetro -AutoSize se usó para ajustar el ancho de la columna para que se ajuste a los datos.

Se trata de cómo obtener la ruta completa del archivo en PowerShell.

Artículos relacionados