Eliminare file o cartelle bloccati da Windows oppure file o cartelle con un percorso troppo lungo. Come fare?

Eliminare file o cartelle bloccati da Windows . Come fare? Bella domanda! La risposta più semplice sarebbe quella di addentrarsi nei meandri di internet e cercare uno dei tanti software che promettono l’eliminazione di file bloccati da Windows oppure quei file per cui Windows segnala l’errore

Cannot delete [file name]: The file name you specified is not valid or too long.
Specify a different file name

Eliminare file o cartelle bloccati da Windows, a volte, può essere veramente snervante! Io sono un po’ eccessivo e decido di utilizzare il fantastico SuperDelete per compiere queste operazion, ma non basta… per automatizzare totalmente le operazioni (download di SuperDelete, decompressione della cartella esecuzione del comando) ho – ovviamente – creato il mio bel powershell che fa tutto in autonomia, chiedendomi solamente il percorso del file o cartella da eliminare!

Quattro requisiti fondamentali:

• Powershell installato sulla macchina su cui si esegue lo script;
• .net Framework 4.0 installato;
• Connessione ad internet nel caso in cui né il file archivio di SuperDelete (SuperDelete___.zip) né SuperDelete.exe siano presenti nella stessa cartella dello script.
• Impostare – in Powershell – Set-ExecutionPolicy Unrestricted -Force

Veniamo al dunque…

Avviando lo script (avviate Powershell come amministratore per bypassare le executionpolicy) ecco cosa avviene:

Eliminare file o cartelle bloccati da Windows

Ora lanciamo lo script…

Eliminare file o cartelle bloccati da Windows

Eliminare file o cartelle bloccati da Windows
Il download ha avuto esito positivo in pochi millesimi di secondo (è un pacchetto da pochi KB)
Eliminare file o cartelle bloccati da Windows
Tutto ha funzionato, quindi… inseriti il percorso della cartella o file da eliminare
Eliminare file o cartelle bloccati da Windows
In caso abbiate già scaricato l’archivio ZIP e il file SuperDelete.exe sia già stato estratto…
Eliminare file o cartelle bloccati da Windows
Nel caso in cui lo ZIP sia presente, ma non fosse ancora stata fatta l’estrazione
[x_code] #Requires -Version 1.0
#Requires -RunAsAdministrator
<# SuperDelete File Roberto Bonfa' Versione: 1.7 Vers. 1.7 - Modificato il metodo di download Vers. 1.6 - Sostituito Github con robertobonfa.it Vers. 1.5 - Aggiunta GUI per la specifica del path del file da cancellare Vers. 1.4 - Ignorata la decompressione dell'archivio *.zip qualora il file SuperDelete.exe sia gia' presente nella cartella dove risiede lo script Vers. 1.3 - Trascurato il download in caso il file SuperDelete.zip sia presente nella cartella dove risiede lo script Vers. 1.2 - Estrazione del file SuperDelete.exe dallo zip Vers. 1.1 - Download del pacchetto SuperDelete.zip dal sito di github Vers. 1.0 - Creazione script Script creato per la cancellazione di file "bloccati" da Windows oppure per la cancellazione di quelle cartelle/files per cui Windows da errore di percorso troppo lungoRequisiti fondamentali: • Powershell installato e funzionante sulla macchina su cui si esegue lo script (versione 1 o >);
• Connessione ad internet in caso non sia già presente il file *.zip contenente SuperDelete oppure il file SuperDelete.exe
#>

write-host “`n”

<# Verifico la presenza del file SuperDelete_1.2.0_x86-x64_NET40.zip #>
$path = “.\SuperDelete_1.2.0_x86-x64_NET40.zip”
$Test = Test-Path $path
If ($Test -eq $True) {Write-Host “File zip gia’ scaricato!”}

<# Se il file SuperDelete_1.2.0_x86-x64_NET40.zip non e' presente, lo scarico #>

Else {
$url = “http://www.robertobonfa.it/Script/SuperDelete_1.2.0_x86-x64_NET40.zip”
$output = “$PSScriptRoot\SuperDelete_1.2.0_x86-x64_NET40.zip”
$start_time = Get-Date

$wc = New-Object System.Net.WebClient
$wc.DownloadFile($url, $output)
#OR
(New-Object System.Net.WebClient).DownloadFile($url, $output)

Write-Output “Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)”

}

write-host “`n”

<# Verifico la presenza del file SuperDelete.exe #>
$path = “.\SuperDelete.exe”
$Test = Test-Path $path
If ($Test -eq $True) {Write-Host “Superdelete.exe gia’ scaricato e decompresso”}

<# Se il file SuperDelete.exe non e' presente, lo decomprimo #>

Else {
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
param([string]$zipfile, [string]$outpath)

[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}

Unzip “.\SuperDelete_1.2.0_x86-x64_NET40.zip” “$PSScriptRoot\”

}

write-host “`n”

<# Costruisco la GUI per la richiesta del percorso del file o cartella da eliminare #>

[void][System.Reflection.Assembly]::LoadWithPartialName(‘Microsoft.VisualBasic’)
$Path = [Microsoft.VisualBasic.Interaction]::InputBox(‘Inserisci il path completo del file/cartella da eliminare’, ‘PATH’)

$Path

& cmd.exe /C “.\SuperDelete.exe” -s $Path
[/x_code]

Abbiamo terminato con lo script… Ora dovete solo metterlo su un PC. Buon test!

P.S.: Se volete scaricare direttamente lo script, potete prelevarlo direttamente qui sotto (tasto destro + “salva link con nome”)

[x_button shape=”square” size=”regular” float=”none” block=”false” icon_only=”true” href=”http://www.robertobonfa.it/Script/SuperDelete.ps1″ title=”Scarica lo script!” target=”blank” info=”popover” info_place=”top” info_trigger=”hover” lightbox_thumb=”http://www.robertobonfa.it/storage/2017/11/powershell-icon-17192.png”]Scarica “SuperDelete.ps1″[/x_button]

Qualora abbiate la volontà/voglia di scaricare SuperDelete direttamente dalla pagina di Github, ecco a voi il link!