Búsqueda de sitios web

PowerShell: Cómo eliminar un archivo si existe


Puede utilizar los siguientes métodos en PowerShell para eliminar un archivo solo si existe:

Método 1: eliminar un archivo si existe

$file_name = "this_data.txt"

if (Test-Path $file_name) {
   Remove-Item $file_name -verbose
} else {
    Write-Host "File does not exist"
}

Este ejemplo en particular elimina el archivo denominado this_data.txt solo si existe en el directorio actual. Si no existe, se muestra el mensaje "El archivo no existe".

Método 2: eliminar varios archivos si existen

$file_names = "this_data.txt", "that_data.txt", "my_data.txt"
foreach($name in $file_names)
{
    if (Test-Path $name) {
       Remove-Item $name -verbose
    } else {
        Write-Host "File does not exist"
    }
}

Este ejemplo en particular elimina los archivos denominados this_data.txt, that_data.txt y my_data.txt solo si existen en el directorio actual.

Para cada archivo, esta sintaxis elimina el archivo o muestra un mensaje que indica que el archivo no existe.

Los siguientes ejemplos muestran cómo utilizar cada método en la práctica.

Ejemplo 1: eliminar un archivo si existe usando PowerShell

Supongamos que nuestro directorio actual tiene la siguiente ruta:

C:\Users\bobbi\OneDrive\Documents\test_data

Podemos escribir Dir para enumerar todos los archivos en este directorio actual:

Podemos ver que hay tres archivos en el directorio:

  • mis_datos.txt
  • mis_nuevos_datos.txt
  • algunos_datos_antiguos.txt

Supongamos que queremos intentar eliminar un archivo llamado this_data.txt solo si existe.

Podemos utilizar la siguiente sintaxis para hacerlo:

$file_name = "this_data.txt"

if (Test-Path $file_name) {
   Remove-Item $file_name -verbose
} else {
    Write-Host "File does not exist"
}

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

Dado que este archivo no existe, recibimos un mensaje que dice "El archivo no existe".

Supongamos en cambio que intentamos eliminar un archivo llamado my_data.txt:

Dado que este archivo existe, podemos eliminarlo correctamente.

Y cuando ejecutamos el comando Dir nuevamente, podemos ver que el archivo ya no existe en el directorio.

Ejemplo 2: eliminar varios archivos si existen usando PowerShell

Supongamos que nuestro directorio actual tiene la siguiente ruta:

C:\Users\bobbi\OneDrive\Documents\test_data

Podemos escribir Dir para enumerar todos los archivos en este directorio actual:

Supongamos que nos gustaría intentar eliminar los siguientes archivos del directorio:

  • este_dato.txt
  • ese_dato.txt
  • mis_datos.txt

Podemos utilizar la siguiente sintaxis para hacerlo:

$file_names = "this_data.txt", "that_data.txt", "my_data.txt"
foreach($name in $file_names)
{
    if (Test-Path $name) {
       Remove-Item $name -verbose
    } else {
        Write-Host "File does not exist"
    }
}

La siguiente captura de pantalla muestra cómo utilizar esta sintaxis en la práctica:

De la salida podemos ver:

  • this_data.txt no existe, por lo que recibimos el mensaje "El archivo no existe".
  • that_data.txt no existe, por lo que recibimos el mensaje "El archivo no existe".
  • my_data.txt existe, por lo que se elimina.

Luego ejecutamos el comando Dir una vez más para confirmar que my_data.txt se eliminó del directorio mientras que todos los demás archivos quedaron intactos.

Artículos relacionados