Saltar al contenido

powershell – extraer el nombre y la extensión del archivo

Solución:

Si el archivo está saliendo del disco y como otros han dicho, use el BaseName y Extension propiedades:

PS C:> dir *.xlsx | select BaseName,Extension

BaseName                                Extension
--------                                ---------
StackOverflow.com Test Config           .xlsx  

Si se le da el nombre del archivo como parte de una cadena (digamos que proviene de un archivo de texto), usaría el GetFileNameWithoutExtension y GetExtension métodos estáticos de la clase System.IO.Path:

PS C:> [System.IO.Path]::GetFileNameWithoutExtension("Test Config.xlsx")
Test Config
PS H:> [System.IO.Path]::GetExtension("Test Config.xlsx")
.xlsx

PS C:WindowsSystem32WindowsPowerShellv1.0>split-path "H:Documentsdevopstp-mkt-SPD-38.4.10.msi" -leaf
tp-mkt-SPD-38.4.10.msi

PS C:WindowsSystem32WindowsPowerShellv1.0> $psversiontable

Name                           Value
----                           -----
CLRVersion                     2.0.50727.5477
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

Si es de un archivo de texto y se supone que el archivo de nombre está rodeado por espacios en blanco, esta es una forma:

$a = get-content c:myfile.txt

$b = $a | select-string -pattern "s.+..{3,4}s" | select -ExpandProperty matches | select -ExpandProperty value

$b | % {"File name:{0} - Extension:{1}" -f $_.substring(0, $_.lastindexof('.')) , $_.substring($_.lastindexof('.'), ($_.length - $_.lastindexof('.'))) }

Si es un archivo, puede usar algo como esto según sus necesidades:

$a = dir .my.file.xlsx # or $a = get-item c:my.file.xlsx 

$a
    Directory: Microsoft.PowerShell.CoreFileSystem::C:ps


Mode           LastWriteTime       Length Name
----           -------------       ------ ----
-a---      25/01/10    11.51          624 my.file.xlsx


$a.BaseName
my.file
$a.Extension
.xlsx
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *