PowerShell: cómo comprobar si una ruta es una carpeta o un archivo
A menudo es posible que desees comprobar si una ruta es una carpeta o un archivo en PowerShell.
Puede utilizar la siguiente sintaxis básica para hacerlo:
$my_path = Get-Item "C:\some\path"
if($my_path.PSIsContainer) {
Write-Host "Path is a folder"
} else {
Write-Host "Path is a file"
}
Este ejemplo en particular verificará si la ruta especificada en la variable $my_path es una carpeta o un archivo y generará el resultado apropiado en la consola.
Esta sintaxis particular comprueba si la propiedad PSIsContainer de la ruta es Verdadero o Falso.
Todas las carpetas se consideran "contenedores" y, por lo tanto, tienen una propiedad PSIsContainer de True.
Por el contrario, no todos los archivos se consideran "contenedores" y, por lo tanto, tienen una propiedad PSIsContainer de False.
Al usar una declaración if else, podemos simplemente verificar si el valor de la propiedad PSIsContainer es Verdadero o Falso y generar el resultado correspondiente.
El siguiente ejemplo muestra cómo utilizar esta sintaxis en la práctica.
Ejemplo: Cómo comprobar si la ruta es una carpeta o un archivo en PowerShell
Supongamos que nos gustaría comprobar si la siguiente ruta es una carpeta o un archivo:
C:\Users\bobbi\data2Podemos utilizar la siguiente sintaxis para hacerlo:
$my_path = Get-Item "C:\Users\bobbi\data2"
if($my_path.PSIsContainer) {
Write-Host "Path is a folder"
} else {
Write-Host "Path is a file"
}La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Esto devuelve "La ruta es una carpeta", ya que la ruta que especificamos de hecho representa la ruta a una carpeta llamada datos2.
Supongamos en cambio que nos gustaría comprobar si la siguiente ruta es una carpeta o un archivo:
C:\Users\bobbi\data2\all_teams.csvPodemos utilizar la siguiente sintaxis para hacerlo:
$my_path = Get-Item "C:\Users\bobbi\data2\all_teams.csv"
if($my_path.PSIsContainer) {
Write-Host "Path is a folder"
} else {
Write-Host "Path is a file"
}
La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:
Esto devuelve "La ruta es un archivo", ya que la ruta que especificamos de hecho representa la ruta a un archivo llamado all_teams.csv.

