50048 Letture

Stampare il contenuto di qualsiasi cartella con una procedura automatica

Windows, anche nelle versioni più recenti, non dispone di una funzionalità che permetta di stampare direttamente l'elenco dei file e delle sottocartelle presenti all'interno di una determinata directory. Esistono software sviluppati da terze parti (come "Karen's Directory Printer"; lo abbiamo presentato in quest'articolo) che consentono di colmare questa lacuna.
In alternativa, come abbiamo già avuto modo di evidenziare in passato, è possibile creare autonomamente un file batch che permetta di raggiungere il medesimo obiettivo.

In quest'articolo vogliamo presentare una metodologia particolarmente adatta per gli utenti meno esperti che permette di aggiungere immediatamente la funzionalità per la stampa del contenuto di una qualuque cartella.

Per procedere, è sufficiente scaricare questo file compresso quindi estrarne il contenuto in una cartella di propria scelta, sul disco fisso. Il file Zip stampadir.zip contiene solamente due file: configura.vbs e stampadir.bat: è importante verificare che entrambi i file siano stati estratti all'interno della medesima directory.


A questo punto, è necessario fare doppio clic sul file configura.vbs. Così facendo, verrà automaticamente aggiunta la voce "Invia a..., Stampa contenuto della cartella" all'interno del menù contestuale di Windows (compare premendo il tasto destro del mouse su una qualunque directory):


D'ora in avanti, per ottenere la lista completa, in formato stampabile, del contenuto di una cartella è sufficiente farvi clic con il tasto destro del mouse cliccare sul menù Invia a quindi sulla voce Stampa contenuto della cartella.
Dopo qualche istante di attesa, a seconda della mole di dati presente nella directory scelta, si aprirà automaticamente il Blocco Note di Windows. Cliccando sul menù File, Stampa si potrà inviare la lista alla stampante.


I file configura.vbs e stampadir.bat possono essere eliminati dal disco fisso: non sono più necessari.

A beneficio dei più esperti, precisiamo che il file configura.vbs, una volta eseguito, provvede a copiare creare, sul disco fisso, una cartella denominata stampadir ed a copiarvi al suo interno il file stampadir.bat. Ecco le righe di codice utilizzate allo scopo:


Dim objFSO, objFolder, strDirectory, objEnv, filebat
Set Shell = CreateObject("WScript.Shell")
Set objEnv = Shell.Environment("PROCESS")
strDirectory = objEnv("systemdrive") & "\stampadir"
Set objFSO = CreateObject("Scripting.FileSystemObject")

if objFSO.FolderExists(strDirectory) = false then
	Set objFolder = objFSO.CreateFolder(strDirectory)
end if

objFSO.CopyFile "stampadir.bat", strDirectory & "\stampadir.bat"


Il secondo passo consiste nel creare un collegamento al file \stampadir\stampadir.bat all'interno della directory di sistema ove viene conservato il contenuto del menù Invia a:

Percorso = Shell.SpecialFolders("SendTo")
Set link = Shell.CreateShortcut(Percorso & "\Stampa contenuto della cartella.lnk")
link.Description = "Stampa contenuto della cartella"
link.IconLocation = "shell32.dll,16"
link.TargetPath = "%systemdrive%\stampadir\stampadir.bat"
link.WindowStyle = 7
link.WorkingDirectory = "%systemdrive%\stampadir"
link.Save


Come si vede, il metodo CreateShortcut permette di generare un nuovo collegamento per il quale vengono poi definitive tutte le varie caratteristiche. L'icona raffigurante una stampante viene estratta attingendo al contenuto della libreria shell32.dll, in corrispondenza della sedicesima posizione.

Il file stampadir.bat, invece, contiene le seguenti righe:
@echo off
dir %1 /-p /s /o:gn > "%temp%\dir.txt"
start /w notepad "%temp%\dir.txt"
del "%temp%\dir.txt"
exit

Com'è possibile notare, il contenuto della cartella di volta in volta selezionata viene sempre memorizzato in un file temporaneo (dir.txt), poi rimosso.

Qualora si volesse rimuovere il meccanismo appena implementato, basterà semplicemente accedere alla cartella %appdata%\Microsoft\Windows\SendTo nel caso di Windows 7 o %userprofile%\SendTo in Windows XP ed eliminare il file "Stampa contenuto della cartella".
Per finire, si dovrà rimuovere la cartella \stampadir, creata nella directory radice del disco fisso.


Abbiamo controllato il corretto funzionamento dello script sia su piattaforma Windows 7 che su Windows XP SP3.


  1. Avatar
    frossi
    09/02/2015 17:27:49
    GRAZIE!!! mi hai fatto fare un figurone in ufficio!!!! Ciao, Fra'
  2. Avatar
    Sil3nt
    24/02/2014 21:22:42
    Ciao! Decisamente molto utile, ma se io volessi un elenco completo di SOLO i files senza altri dettagli??
  3. Avatar
    Giovanni 61
    16/02/2011 08:29:05
    Il link si trova nel secondo paragrafo dell'articolo, accanto all'immagine col numero 1. Basta leggere attentamente l'articolo per vederlo
  4. Avatar
    Michele Nasi
    14/02/2011 12:25:55
    Assolutamente no! Cliccando sul link riportato nell'articolo, si scarica il file compresso contenente i due file VBS e BAT necessari per l'applicazione delle indicazioni. Karen's non c'entra nulla.
  5. Avatar
    rinus
    13/02/2011 12:25:31
    tu dici,caro Michele,che è necessario scaricare questo file......ma ti riferisci al software di karen's? :confuso:
  6. Avatar
    seven_eleven
    01/02/2011 22:45:24
    Sempre ingegnoso, Michele, utile :approvato:
  7. Avatar
    Roberto48
    30/01/2011 12:45:30
    Ottimo, grazie
Stampare il contenuto di qualsiasi cartella con una procedura automatica - IlSoftware.it