Come controllare ed eliminare file esistenti in PowerShell

Se stai tentando di eliminare un particolare elemento indipendentemente dal tipo di file, dovrai prima verificare se esiste o meno. Altrimenti, probabilmente riscontrerai un errore imprevisto.

Sebbene il controllo e la rimozione dei file sia relativamente semplice utilizzando la GUI di Windows, è comunque necessario accedere a più finestre solo per eliminare un singolo file. D’altra parte, Powershell ti consente di eseguire la stessa operazione utilizzando comandi semplici e brevi.

Bene, puoi semplicemente utilizzare il cmdlet Remove-Item per eliminare un file specifico dal percorso specificato. Tuttavia, ci sono più comandi e una miriade di metodi per verificare se l’elemento che stai tentando di eliminare esiste o meno.

Se volete continuare a leggere questo post su "[page_title]" cliccate sul pulsante "Mostra tutti" e potrete leggere il resto del contenuto gratuitamente. ebstomasborba.pt è un sito specializzato in Tecnologia, Notizie, Giochi e molti altri argomenti che potrebbero interessarvi. Se desiderate leggere altre informazioni simili a [page_title], continuate a navigare sul web e iscrivetevi alle notifiche del blog per non perdere le ultime novità.

Seguir leyendo


Per quanto riguarda lo stesso, questo articolo ti guiderà con i vari comandi e le tecniche utili per controllare ed eliminare i file esistenti in Windows Powershell.

Sommario

Come controllare ed eliminare un file esistente in Powershell?

Windows Powershell è un terminale che consente agli utenti di automatizzare le attività utilizzando linguaggi di scripting. Pertanto, la creazione, la lettura, l’aggiornamento o l’eliminazione di file utilizzando questa utility è facile da comprendere e implementare.

Probabilmente, hai provato a verificare se esiste un file in Bash , Prompt dei comandi e GUI di Windows. Ora, in questa sezione, imparerai diversi comandi per farlo in Powershell ed eliminarlo se necessario.

Utilizzo del percorso di prova

Test-Path è un comando che determina se il percorso/indirizzo fornito esiste. Fondamentalmente, l’esecuzione di questo cmdlet su Powershell restituisce un’espressione booleana. Qui, True indica che il file a cui stai tentando di accedere esiste e False significa che non esiste. Di seguito è riportata la sintassi per Test-Path:
Test-Path

Ad esempio, per verificare se il file “text.txt” esiste all’interno della directory Documenti ed eliminarlo, ecco cosa puoi fare:

  1. Nella finestra di Powershell, copia e incolla il comando seguente:
    Test-Path Documentstext.txt
  2. Ora, premi invio e dovresti ottenere il valore “True” se esiste.

    Altrimenti, otterrai il valore “False” come di seguito.
  3. Se esiste, ora puoi utilizzare il comando seguente per eliminare il file:
    Remove-Item Documentstext.txt

    Tuttavia, se provi a eliminare il file che non esiste, riceverai un messaggio di errore come quello riportato di seguito.

Se non preferisci le espressioni booleane, puoi utilizzare le istruzioni if ​​e else per generare messaggi veri e propri. Inoltre, scrivere questo semplice codice ti aiuterà a eliminare il file esistente senza dover eseguire più comandi:

 $MyFile = "Documentstext.txt"
if (Test-Path $MyFile) {
Remove-Item $MyFile
Write-Host "The file was found and has been deleted successfully."
}
else
{
Write-Host "The file you're searching for doesn't exist."
}

Nel codice sopra, stiamo sostanzialmente rappresentando la posizione con la variabile MyFile. Ora, l’ if (Test-Path $MyFile) determina se il percorso esiste o meno.

In tal caso, visualizzerai il messaggio “Il file è stato trovato ed è stato eliminato correttamente”. e il comando Remove-Item $MyFile elimina il tuo file .

Per garantire ciò, puoi utilizzare di nuovo Test-Path Documentstext.txt e dovresti ottenere l’output False.

Tuttavia, se il file non esiste, incontrerai semplicemente “Il file che stai cercando non esiste”. messaggio invece dell’errore Impossibile trovare il percorso come in precedenza.

Utilizzo di Get-Item

Usare Get-Item è semplice come usare Test-Path. Tuttavia, questo cmdlet non determina se un file esiste utilizzando espressioni booleane. Invece, emette la modalità del tuo file, l’ora dell’ultima scrittura, la lunghezza e il nome, insieme al suo tipo . Di seguito è riportata la sintassi di Get-Item:
Get-Item

Seguire le istruzioni riportate di seguito per informazioni su come identificare ed eliminare un file esistente utilizzando il cmdlet Get-Item. A scopo dimostrativo, rimuoveremo un file immagine ” image.bmp ” dalla directory Documenti:

  1. Dopo aver avviato Powershell, incolla il comando seguente:
    Get-Item Documentsimage.bmp
  2. Premi Invio e otterrai i dettagli del file se il file esiste.

    In caso contrario, incontrerai l’errore Impossibile trovare il percorso.
  3. Se il file esiste, ora usa il comando seguente per rimuoverlo dalla directory:
    Remove-Item Documentsimage.bmp

    Ma se il file non esiste e provi a eliminarlo, incontrerai di nuovo l’ errore Impossibile trovare il percorso .

Bene, puoi anche utilizzare il programma seguente per controllare ed eliminare un file esistente in Powershell utilizzando Get-Item :

 $MyFile = "Documentsimage.bmp"if(Get-Item $MyFile -ErrorAction Ignore){Remove-Item $MyFileWrite-Host "The file was found and has been deleted successfully."}else{Write-Host "The file you're searching for doesn't exist and can't be deleted."}

Nello script sopra, abbiamo prima assegnato una variabile MyFile che memorizza il percorso del file image.bmp . Quindi, impostiamo la condizione if come Get-Item $MyFile -ErrorAction Ignore , dove Get-Item $MyFile ottiene l’elemento dalla posizione e – ErrorAction Ignore eliminerà l’errore se il file non esiste.

Fondamentalmente, se il tuo file esiste, riceverai il messaggio ” Il file è stato trovato ed è stato eliminato con successo ” e l’elemento viene eliminato.

In caso contrario, incontrerai “Il file che stai cercando non esiste e non può essere eliminato”.

Nota: è inoltre possibile utilizzare il cmdlet Get-ChildItem invece di Get-Item. Entrambi i comandi funzionano esattamente allo stesso modo.

Utilizzo di [System.IO.File]::Esiste

System.IO si occupa di leggere e scrivere nei file nella libreria di classi del framework .NET. Utilizzando lo spazio dei nomi, possiamo determinare rapidamente se esiste un file. Quindi, utilizzando il cmdlet Remove-Item , è possibile anche l’eliminazione.

Analogamente a Test-Path, anche il comando [System.IO.File]::Exists genera un’espressione booleana per determinare se un file esiste o meno. Ecco la sintassi del cmdlet [System.IO.File]::Exists :
[System.IO.File]::Exists(“”)

Per dimostrazione, controlliamo se esiste un file MS Word ‘word.docx’ nella directory Documento ed eliminiamo questo elemento:

  1. Esegui il seguente cmdlet nella finestra di Powershell:
    [System.IO.File]::Exists("Documentsword.docx")
  2. Ora, Powershell restituisce True se il file esiste.

    In caso contrario, l’output è False.
  3. Se il file che stai cercando esiste, utilizza il seguente comando per eliminarlo:
    Remove-Item Documentsword.docx

    Bene, Powershell attiva l’errore Impossibile trovare il percorso se si tenta di eliminare un file inesistente.

Inoltre, puoi provare il seguente programma che adotta il cmdlet [System.IO.File]::Exists per eliminare un file esistente su Windows Powershell:

 $MyFile = "Documentsword.docx"if([System.IO.File]::Exists($MyFile)){Remove-Item $MyFileWrite-Host "The file was found and has been deleted successfully"}else{Write-Host "The file you're searching for doesn't exist and can't be deleted."}

Nel programma sopra, MyFile è una variabile che memorizza il percorso del file MS Word. Ora, usando [System.IO.File]::Exists($MyFile) , possiamo sapere se l’elemento esiste o meno.

Ora, invece di visualizzare l’espressione booleana, il cmdlet Write-Host visualizza ” Il file è stato trovato ed è stato eliminato correttamente “. e cancella il file se esiste.

Allo stesso modo, ricevi il messaggio ” Il file che stai cercando non esiste e non può essere eliminato “. se il percorso non è impostato a destra.

Come eliminare più file esistenti in Powershell?

A volte, potresti voler eliminare più file da una cartella o directory. In tal caso, Windows Powershell fornisce una funzionalità per rimuovere definitivamente tutti i file o quelli selezionati.

Attenzione: gli elementi non si sposteranno nel cestino. Fondamentalmente, l’azione equivale a eseguire l’eliminazione permanente utilizzando i tasti Maiusc + Canc sull’interfaccia di Windows.

In questa sezione, discuteremo alcuni modi semplici ed efficaci per controllare ed eliminare più file esistenti nel programma Powershell.

Tutti i file da una cartella specifica

Se desideri eliminare tutti i file da una particolare cartella indipendentemente dal tipo o dall’estensione del file , ecco il comando appropriato che puoi utilizzare:
Remove-Item *.*

Ad esempio, controlliamo i file all’interno della cartella Esempio ed eliminiamo tutti i file al suo interno. Ecco come puoi farlo:

  1. Innanzitutto, usa il comando seguente per controllare i file all’interno della cartella di esempio:
    Get-ChildItem C:UsersBhishuDesktopExample
  2. Ora puoi eseguire il codice seguente per eliminare tutti questi file:
    Remove-Item C:UsersBhishuDesktopExample*.*
  3. Per confermare che tutti i file sono stati rimossi, utilizzare nuovamente il cmdlet Get-ChildItem , che non dovrebbe visualizzare nulla.

File nascosti o di sola lettura

Bene, la rimozione di tutti i file non eliminerà quelli con attributi di sola lettura e nascosti. Infatti, se provi a rimuovere tali elementi, otterrai l’errore Non disponi di diritti di accesso sufficienti per eseguire questa operazione.

Pertanto, è necessario utilizzare il parametro -Force per eliminarli forzatamente:
Remove-Item -Force

Facciamo un esempio per capirlo. Supponiamo di avere un file nascosto e di sola lettura, ‘word.docx’, all’interno della cartella Example. Quindi, per rimuoverlo, ecco il comando corretto che devi usare:
Remove-Item C:UsersBhishuDesktopExampleword.docx -Force

Ora, non dovresti ottenere l’errore. In effetti, puoi convalidarlo utilizzando il comando Test-Path per verificare se il file nascosto esiste ora nella stessa posizione.

Tutti i file dello stesso tipo

Se non desideri eliminare tutti i file da una cartella specifica, ma desideri rimuovere solo gli elementi che hanno lo stesso tipo di file, ecco la sintassi che stai cercando:
Remove-Item *[file-type]

Ad esempio, per eliminare tutti i file con estensione .docx dalla cartella Esempio, seguire i passaggi seguenti:

  1. Prima di tutto, esegui lo script seguente per verificare quali file esistono nella cartella:
    Get-Item C:UsersbishuDesktopExample*.*

    Qui, *.* mostrerà tutti i file indipendentemente dalla loro estensione.
  2. Poiché stai solo cercando di rimuovere file dello stesso tipo, usa il seguente comando che dovrebbe fare il lavoro:
    Remove-Item C:UsersbishuDesktopExample*.docx
    Fondamentalmente, *.docx aiuterà a eliminare tutti quei file con estensione .docx. Allo stesso modo, puoi sostituirlo con qualsiasi tipo di file (.bmp, .txt, .jpeg), che eliminerà solo quei file con l’estensione corrispondente.
  3. Infine, puoi utilizzare nuovamente il comando Get-Item per visualizzare tutti i file nella cartella Example. In effetti, noterai che tutti i file .docx vengono rimossi.