Cómo extraer el nombre del archivo de una ruta usando PowerShell
-
Usa el cmdlet
Split-Path
para extraer el nombre del archivo de una ruta en PowerShell - Usa los métodos de la clase Path de .NET para extraer el nombre del archivo de una ruta en PowerShell
-
Usa los cmdlets
Get-Item
yGet-ChildItem
para extraer el nombre del archivo de una ruta en PowerShell - Usa expresiones regulares para extraer el nombre del archivo de una ruta en PowerShell
- Usa la manipulación de cadenas para extraer el nombre del archivo de una ruta en PowerShell
-
Usa la clase
System.IO.FileInfo
para extraer el nombre del archivo de una ruta en PowerShell - Conclusión

Una ruta de archivo indica la ubicación del archivo en el sistema. Al trabajar con archivos en PowerShell, es posible que necesite obtener solo el nombre del archivo de una ruta.
Hay múltiples formas de obtener la ruta de los archivos en PowerShell. Este tutorial te enseñará a extraer el nombre del archivo de una ruta con PowerShell.
Usa el cmdlet Split-Path
para extraer el nombre del archivo de una ruta en PowerShell
En PowerShell, el cmdlet Split-Path
es una herramienta útil para aislar segmentos específicos de una ruta dada. Ya sea la carpeta principal, subcarpeta, nombre del archivo o solo la extensión del archivo, Split-Path
te permite apuntar y mostrar estos elementos.
Extraer el nombre del archivo con extensión
Para capturar el nombre del archivo junto con su extensión desde una ruta, puedes emplear el comando Split-Path
con el parámetro -Leaf
:
Split-Path C:\pc\test_folder\hello.txt -Leaf
Salida:
hello.txt
Obtener el nombre del archivo sin extensión
En casos donde necesitas el nombre del archivo sin la extensión, el parámetro -LeafBase
es útil. Sin embargo, es importante notar que este parámetro está disponible en versiones de PowerShell 6.0 y posteriores:
Split-Path C:\pc\test_folder\hello.txt -LeafBase
Salida:
hello
Usa los métodos de la clase Path de .NET para extraer el nombre del archivo de una ruta en PowerShell
En .NET, la clase Path
ofrece métodos útiles para extraer fácilmente el nombre y la extensión del archivo de una ruta especificada. Exploremos estas capacidades con ejemplos.
Extraer el nombre del archivo con extensión usando GetFileName
El método GetFileName
de la clase Path
recupera el nombre del archivo junto con su extensión de una ruta dada. Demostremos esto con la ruta C:\pc\test_folder\hello.txt
:
[System.IO.Path]::GetFileName('C:\pc\test_folder\hello.txt')
Salida:
hello.txt
Obtener el nombre del archivo sin extensión usando GetFileNameWithoutExtension
Para extraer solo el nombre del archivo sin la extensión, puedes usar el método GetFileNameWithoutExtension
. Esto es particularmente útil cuando necesitas el nombre del archivo sin incluir el tipo de archivo:
[System.IO.Path]::GetFileNameWithoutExtension('C:\pc\test_folder\hello.txt')
Salida:
hello
Usa los cmdlets Get-Item
y Get-ChildItem
para extraer el nombre del archivo de una ruta en PowerShell
En PowerShell, los cmdlets Get-Item
y Get-ChildItem
son herramientas esenciales para trabajar con archivos y directorios, permitiéndote extraer información específica sobre el elemento en una ubicación dada.
Veamos cómo usar estos cmdlets para extraer el nombre del archivo de una ruta dada, incluyendo variaciones para obtener el nombre del archivo con o sin la extensión.
Extraer el nombre del archivo con extensión usando Get-Item
El cmdlet Get-Item
recupera información detallada sobre el elemento especificado, incluyendo su directorio, modo, última hora de escritura, longitud y nombre. Para extraer el nombre del archivo con la extensión, puedes usar la propiedad .Name
en conjunto con Get-Item
.
Demostremos esto con una ruta específica, C:\pc\test_folder\hello.txt
:
(Get-Item C:\pc\test_folder\hello.txt).Name
Salida:
hello.txt
Obtener el nombre del archivo sin extensión usando Get-Item
Si necesitas extraer solo el nombre del archivo sin la extensión, puedes utilizar la propiedad .BaseName
en combinación con Get-Item
. Esto te permite aislar solo el nombre del archivo de la ruta proporcionada:
(Get-Item C:\pc\test_folder\hello.txt).BaseName
Salida:
hello
Aplicar el método con Get-ChildItem
Este enfoque también es aplicable al usar el cmdlet Get-ChildItem
, que recupera información sobre los elementos en una ubicación específica. Aquí te mostramos cómo puedes usarlo para extraer el nombre del archivo con o sin la extensión:
(Get-ChildItem C:\pc\test_folder\hello.txt).Name
(Get-ChildItem C:\pc\test_folder\hello.txt).BaseName
Salida:
hello.txt
hello
Usa expresiones regulares para extraer el nombre del archivo de una ruta en PowerShell
Las expresiones regulares también se pueden utilizar para extraer el nombre del archivo de una ruta en PowerShell. La clase Regex
en .NET proporciona herramientas poderosas para la coincidencia y manipulación de patrones.
Veamos cómo funciona esto:
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Use regular expression to extract the filename
$filename = [System.Text.RegularExpressions.Regex]::Match($path, '\\([^\\]+)$').Groups[1].Value
$filename
Salida:
hello.txt
En este ejemplo, utilizamos una expresión regular para capturar el texto después de la última barra invertida, que representa el nombre del archivo junto con su extensión.
La expresión regular '\\([^\\]+)$'
se puede descomponer de la siguiente manera:
\\
: Coincide con una barra invertida en la ruta.([^\\]+)
: Captura uno o más caracteres que no son una barra invertida (representando el nombre del archivo con extensión) dentro de un grupo de captura.$
: Especifica que la coincidencia debe ocurrir al final de la cadena.
Al usar el método Match
de la clase Regex
, aplicamos la expresión regular a la ruta.
La coincidencia resultante contiene el nombre del archivo con su extensión. Accedemos a esto a través de Groups[1].Value
para extraer el nombre de archivo deseado.
Usa la manipulación de cadenas para extraer el nombre del archivo de una ruta en PowerShell
Las técnicas de manipulación de cadenas también se pueden emplear para extraer el nombre del archivo de una ruta. Por ejemplo, puedes usar el método LastIndexOf
para encontrar la última ocurrencia de la barra invertida y extraer el nombre del archivo en consecuencia.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Find the index of the last backslash
$lastBackslashIndex = $path.LastIndexOf("\") + 1
# Extract the filename
$filename = $path.Substring($lastBackslashIndex)
$filename
Salida:
hello.txt
Aquí, utilizamos el método LastIndexOf
para determinar el índice de la última ocurrencia de una barra invertida (\
) en la ruta, identificando esencialmente la posición donde comienza el nombre del archivo.
$lastBackslashIndex = $path.LastIndexOf("\") + 1
: Esta línea calcula el índice de la última barra invertida y suma1
para asegurarse de comenzar a extraer caracteres después de la barra invertida.
A continuación, utilizamos el método Substring
para extraer el nombre del archivo, comenzando desde el índice después de la última barra invertida y continuando hasta el final de la cadena.
$filename = $path.Substring($lastBackslashIndex)
: Aquí, extraemos el nombre del archivo utilizandoSubstring
con el índice calculado.
Usa la clase System.IO.FileInfo
para extraer el nombre del archivo de una ruta en PowerShell
La clase System.IO.FileInfo
proporciona propiedades para acceder a la información del archivo, incluyendo el nombre del archivo. Podemos crear un objeto FileInfo
y luego acceder a la propiedad Name
para obtener el nombre del archivo.
# Define the path
$path = "C:\pc\test_folder\hello.txt"
# Create a FileInfo object
$fileInfo = New-Object System.IO.FileInfo $path
# Extract the filename
$filename = $fileInfo.Name
$filename
Salida:
hello.txt
En este ejemplo, creamos un objeto FileInfo
usando New-Object
y la clase System.IO.FileInfo
, lo que nos permite acceder a propiedades y métodos relacionados con el archivo.
$fileInfo = New-Object System.IO.FileInfo $path
: Esta línea de código construye un objetoFileInfo
basado en la ruta proporcionada.
A continuación, utilizamos la propiedad Name
del objeto FileInfo
para extraer el nombre del archivo.
$filename = $fileInfo.Name
: Aquí, recuperamos el nombre del archivo al acceder a la propiedadName
del objetoFileInfo
.
Conclusión
En este tutorial, exploramos varios métodos para extraer nombres de archivos de rutas en PowerShell. Desde usar cmdlets integrados como Split-Path
hasta emplear expresiones regulares y manipulación de cadenas, tienes una variedad de opciones para elegir según tus requisitos específicos.
Entender estas técnicas mejorará tu competencia en el manejo de rutas de archivos y la extracción de información esencial del archivo en PowerShell. Ya sea que prefieras la simplicidad de los cmdlets integrados o la versatilidad de las expresiones regulares, PowerShell ofrece un conjunto robusto de herramientas para una manipulación de archivos efectiva.
Artículo relacionado - PowerShell File
- Cómo crear un archivo de texto usando Windows PowerShell
- Cómo obtener la versión del archivo en PowerShell
- Cómo subir archivos con FTP en PowerShell
- Cómo agregar datos a un archivo usando PowerShell
- Cómo almacenar el contenido de un archivo de texto en una variable usando PowerShell
- Consulta de la última hora de escritura del archivo en PowerShell