2015-12-01 24 views
5

vorrei aggiungere al menu contestuale questo nice shell script che elimina automaticamente tutte le cartelle vuote e sottocartelle della cartella che viene eseguito da:Aggiungi 'Cancellare le cartelle vuote' al menu contestuale di Windows

for /f "usebackq delims=" %%d in (`"dir /ad/b/s | sort /R"`) do rd "%%d" 

Per aggiungere tale una voce al menu (directory) contesto dovrei eseguire un file con estensione reg con un contenuto simile a

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders] 

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders\Command] 
@=for /f "usebackq delims=" %%d in (`"dir %1 /ad/b/s | sort /R"`) do rd "%%d" 

ma questo non funziona. Come dovrebbe essere corretto per eseguire correttamente uno script di shell di linea?

+0

Inserire il codice in un file .bat, inserire il file bat e un identificatore argomento nella chiave reg. –

+1

@Alex: dovrebbe essere possibile chiamando 'cmd/c' con il resto della riga di comando. – Joey

+0

@Joey Usando '@ =" cmd/c per/f \ "usebackq delim = \" %% d in (\ '\" dir% 1/ad/b/s | sort/R \ "\') do rd \ "%% d \" "' Sono riuscito a eliminare le cartelle vuote in alcune posizioni ma non dappertutto, puoi elaborarlo? – mmj

risposta

5

Grazie al commento di Joey sono riuscito a trovare la seguente soluzione.

Fase 1: creare un file con reg estensione (come ad esempio add_delete_empty_folders_to_context_menu.reg) e mettere le seguenti righe al suo interno:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders] 

[HKEY_CLASSES_ROOT\Directory\shell\Delete empty folders\Command] 
@="cmd /c for /f \"usebackq delims=\" %%d in (`\"dir \"%1\" /ad/b/s | sort /R\"`) do rd \"%%d\"" 

Fase 2: fare doppio clic sul file reg e dare tutte le conferme necessarie.

Ora hai un pratico comando Delete empty folders nel tuo menu contestuale, spuntando quando fai clic destro su una directory. Questo funziona per me su Windows 7 e Windows 10.

Evitare l'uso improprio di questa funzionalità, alcuni software richiedono che le cartelle vuote funzionino correttamente.

Follow-up

In caso di problemi (come Enora, vedi sotto) si può provare a utilizzare la seguente riga nel file reg, al posto di quello originale:

@="cmd.exe /K for /f \"usebackq delims=\" %%d in (`\"dir \"%V\" /ad/b/s | sort /R\"`) do rd \"%%~d\"" 

In realtà non so se questa versione è più robusta, ho appena riportato qui il solution trovato da Enora per il suo caso.

+0

Funziona bene. Potresti includere anche la versione che aggiunge una sorta di icona a questa opzione nel menu di scelta rapida? – TMRW

+0

@TMRW Siamo spiacenti, questo è al di là delle mie conoscenze. Forse qualcun altro sarà in grado di aiutare per questo. – mmj

+0

Np. Penso di poterlo fare io stesso con un po 'di ricerca. – TMRW

Problemi correlati