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-ChildItemcon la opción-Recurse. - Canalícelo al cmdlet
where-objectpara filtrar el nombre de archivo. En este ejemplo, hemos dado el nombre de archivo comotest.ps1 - Canalícelo al cmdlet forEach-Object y obtenga la propiedad
FullNamedel objeto actual.
Utilice el cmdlet Get-ChildItem:
Get-ChildItem -Recurse |Where-Object {($_.name -eq "test.ps1")}| %{$_.FullName}PRODUCCIÓN :
D:\PowerShell\test.ps1A 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.docxEn 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
-Recurseinforma 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 cmdletForEach-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.txtEn 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.docxUso 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.pyEn 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 FullNamePRODUCCIÓ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.pyEn 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 FullNamePRODUCCIÓ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.txtEl 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 FullNamePRODUCCIÓN :
FullName : D:\PowerShell\Testing\How neuroencoding improves performance-1.docx
FullName : D:\PowerShell\Testing\important\result.docxEste 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 -AutoSizePRODUCCIÓ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.txtEn 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.
