PowerShell Elimina il file se esiste

PowerShell Elimina il file se esiste

Come ogni altra shell, PowerShell è una potente shell e un linguaggio di scripting sviluppato da Microsoft. Originariamente progettato per Windows, PowerShell è ora disponibile per tutte le principali piattaforme. A partire da PowerShell 6, è diventata un'applicazione gratuita e open source.

Simile a qualsiasi altro scripting di shell, possiamo usare PowerShell per automatizzare le cose di base a quella avanzata. In questa guida, controlla come utilizzare PowerShell per eliminare un file se esiste su Linux.

Verifica se esiste un file

Simile ad altre conchiglie, PowerShell viene fornito con il proprio set di comandi per eseguire vari compiti, noti come cmdlet. Per testare una determinata affermazione, in bash, useremmo la dichiarazione di test bash che controlla se un determinato argomento è vero o falso. L'istruzione del test è un meccanismo per uso generale che può calcolare un'ampia varietà di possibili comandi.

Nel caso di PowerShell, tuttavia, ci sono cmdlet specifici per un'attività specifica. Qui, avremo bisogno del percorso di prova per verificare se il file indicato esiste nella posizione definita.

Ecco una semplice dimostrazione del percorso di prova in azione.

$ Test -path -path

Per impostazione predefinita, il percorso test controllerà se l'esistenza dell'elemento specificato nella posizione descritta. Se esiste, restituisce il valore booleano "vero". Altrimenti, restituisce "falso".

Eliminazione di un file in PowerShell

In Linux, useremmo il comando RM per eliminare un file o una directory. Nel caso di PowerShell, utilizza il cmdlet rimodellate.

Dai un'occhiata alla documentazione Microsoft su Remove Etim.

Ad esempio, per rimuovere un file specifico, eseguire il comando seguente.

$ Rimuovi-Item

Per rimuovere una directory, abbiamo bisogno di un'opzione aggiuntiva "-Recurse".

$ Rimuovi-Item -Ricorso

Eliminazione dei file se esistono

Ora, possiamo combinare entrambi i metodi insieme e creare uno script semplice che eliminerà un file se esiste nella posizione target.

Innanzitutto, assegna una variabile che manterrà il valore del percorso del file.

$ $ FileLocation = ""

Successivamente, utilizzare il percorso di prova per verificare se il file esiste nella posizione.

$ Test-Path $ Filelocation

A seconda del valore di restituzione del percorso di prova, possiamo prendere una decisione di rimuovere il file di destinazione. Possiamo usare l'istruzione PowerShell If-Else per determinare l'azione.

if (test-path $ fileName = true)
Rimuovi il nome file $ Item
$

Aggiungiamo alcuni messaggi aggiuntivi per ogni possibile risultato.

if (test-path $ filaocality)
Rimuovi il file di file $ Item
Write-host "$ filaocality viene rimosso"

altro
Write-host "$ filaocalizzazione non esiste"

Implementazione in uno script PowerShell

È ora di mettere tutti i codici in uno script PowerShell adatto. Simile agli script bash, possiamo usare gli script PowerShell per automatizzare varie attività utilizzando PowerShell CMDLET e comandi. Su Linux, sia PowerShell che Bash script condividono somiglianze strutturali.

Innanzitutto, abbiamo bisogno della posizione della posizione eseguibile PowerShell. È importante in quanto farà parte dello shebang. Esegui il seguente comando.

$ che Powershell

Ora possiamo mettere insieme tutti questi pezzi in una singola sceneggiatura di PowerShell. Uno script PowerShell viene fornito con l'estensione del file PS1.

$ nano elimina-if-esista.PS1

Ora inserisci il codice che abbiamo sviluppato finora.

$ FileLocation = ""
if (test-path $ filaocality)
Rimuovi il file di file $ Item
Write-host "$ filaocality viene rimosso"

altro
Write-host "$ filaocalizzazione non esiste"

Salva il file e chiudi l'editor. Segna il file come eseguibile.

$ chmod +x elimina-if-esista.PS1

Infine, esegui lo script.

$ ./elimina-if-esista.PS1

Situazioni speciali

Eliminazione di file di sola lettura

Il cmdlet remove-elem non può eliminare i file non esistenti o di sola lettura. In tale situazione, possiamo modificare il comando Rimuovi ETEM in eliminazione, indipendentemente dall'autorizzazione del file. Il flag "-verbose" stamperà l'output passo-passo per il debug più facile.

$ Remove -item -verbose -force $ filaocality

Aggiorniamolo nello script.

$ FileLocation = ""
if (test-path $ filaocality)
Rimuovi -Item -verbose -force $ filaocalizzazione
Write-host "$ filaocality viene rimosso"

altro
Write-host "$ filaocalizzazione non esiste"

Pensiero finale

Questa guida mostra come verificare l'esistenza di un file e in base al risultato, come eliminarlo utilizzando Rimorate CMDLET. Se il file è negato in sola lettura o autorizzazione, allora possiamo usare il parametro "-force" per eliminarlo con forza. Infine, abbiamo implementato l'intero script.

Questo è un modo molto semplice ma efficace per rimuovere un file/directory di scelta. Tuttavia, come dimostrato, questo metodo generale è in grado di rimuovere un solo articolo. È possibile ottenere l'elenco dei file da una directory e utilizzare un ciclo per eliminarli in modo incrementale.

Felice calcolo!