Come sfuggire agli spazi nei percorsi dei file sulla riga di comando di Windows

Gli ambienti della riga di comando come il prompt dei comandi di Windows e PowerShell utilizzano spazi per separare comandi e argomenti, ma anche i nomi di file e cartelle possono contenere spazi. Per specificare un percorso di file con uno spazio al suo interno, è necessario “evitarlo”.

Riga di comando 101: perché devi sfuggire agli spazi

“Fuggire” da un personaggio cambia il suo significato. Ad esempio, l’escape di uno spazio farà sì che la shell lo consideri come un carattere di spazio standard piuttosto che un carattere speciale che separa gli argomenti della riga di comando.

Ad esempio, supponiamo che tu abbia un file di testo di cui vuoi vedere il contenuto. Puoi farlo con il comando type. Supponendo che il file di testo si trovi in ​​C: TestFile.txt, il seguente comando nel prompt dei comandi ne mostrerà il contenuto:

type C:TestFile.txt

Grande. Ora, cosa succede se hai lo stesso file in C: Test FolderTest File.txt? Se provi a eseguire il comando seguente, non funzionerà: quegli spazi nel percorso del file si stanno intromettendo.

type C:Test FolderTest File.txt

La riga di comando pensa che tu stia cercando un file chiamato C: Test e dice che “non è possibile trovare il percorso specificato”.

Errore del prompt dei comandi quando non si evitano gli spazi

Tre modi per sfuggire agli spazi su Windows

Esistono tre modi diversi per sfuggire ai percorsi dei file su Windows:

Racchiudendo il percorso (o parti di esso) tra virgolette doppie (“).
Aggiungendo un carattere accento circonflesso (^) prima di ogni spazio. (Funziona solo in Prompt dei comandi / CMD e non sembra funzionare con tutti i comandi.)
Aggiungendo un accento grave (`) prima di ogni spazio. (Funziona solo in PowerShell, ma funziona sempre.)

Ti mostreremo come utilizzare ciascun metodo.

Racchiudi il percorso tra virgolette (“)

Il modo standard per garantire che Windows tratti correttamente un percorso di file è racchiuderlo tra virgolette doppie (“). Ad esempio, con il nostro comando di esempio sopra, dovremmo semplicemente eseguire quanto segue:

type "C:Test FolderTest File.txt"

Puoi effettivamente racchiudere parti del percorso tra virgolette, se preferisci. Ad esempio, supponiamo che tu abbia un file denominato File.txt in quella cartella. Potresti eseguire quanto segue:

type C:"Test Folder"File.txt

Tuttavia, ciò non è necessario: nella maggior parte dei casi, puoi semplicemente utilizzare le virgolette attorno all’intero percorso.

Questa soluzione funziona sia nel tradizionale ambiente del prompt dei comandi (CMD) che in Windows PowerShell.

Racchiudere gli spazi tra virgolette doppie nel prompt dei comandi

A volte: usa il carattere accento circonflesso per sfuggire agli spazi (^)

Nel prompt dei comandi, il carattere accento circonflesso (^) ti consentirà di sfuggire agli spazi, in teoria. Basta aggiungerlo prima di ogni spazio nel nome del file. Troverai questo carattere nella riga dei numeri sulla tastiera. Per digitare il carattere accento circonflesso, premi Maiusc + 6.

Ecco il problema: anche se dovrebbe funzionare, ea volte lo fa, non funziona sempre. La gestione di questo personaggio da parte del prompt dei comandi è strana.

Ad esempio, con il nostro comando di esempio, dovresti eseguire quanto segue e non funzionerebbe:

type C:Test^ FolderTest^ File.txt

Errore di escape dello spazio con il cursore nel prompt dei comandi

D’altra parte, se proviamo ad aprire il nostro file direttamente digitandone il percorso nel prompt dei comandi, possiamo vedere che il carattere accento circonflesso sfugge correttamente agli spazi:

C:Test^ FolderTest^ File.txt

Spazio per il cursore che fuoriesce lavorando nel prompt dei comandi

Allora quando funziona? Ebbene, in base alla nostra ricerca, sembra funzionare con alcune applicazioni e non con altre. Il tuo chilometraggio può variare a seconda del comando che stai utilizzando. La gestione di questo personaggio da parte del prompt dei comandi è strana. Provalo con qualsiasi comando tu stia usando, se sei interessato: potrebbe funzionare o meno.

Per coerenza, ti consigliamo di mantenere le virgolette doppie nel prompt dei comandi o di passare a PowerShell e utilizzare il metodo dell’accento grave di seguito.

PowerShell: usa il carattere di accento grave (`)

PowerShell utilizza il carattere accento grave (`) come carattere di escape. Basta aggiungerlo prima di ogni spazio nel nome del file. (Troverai questo carattere sopra il tasto Tab e sotto il tasto Esc sulla tastiera.)

type C:Test` FolderTest` File.txt

Ogni carattere con accento grave indica a PowerShell di eseguire l’escape del seguente carattere.

Tieni presente che funziona solo nell’ambiente PowerShell. Dovrai usare il carattere accento circonflesso nel prompt dei comandi.

Fuga dagli spazi con l'accento grave in PowerShell

Se hai familiarità con i sistemi operativi UNIX come Linux e macOS, potresti essere abituato a usare il carattere backslash () prima di uno spazio per sfuggirlo. Windows lo usa per i normali percorsi dei file, quindi non funziona – i caratteri caret (^) e accento grave (`) sono la versione Windows della barra rovesciata, a seconda della shell della riga di comando che stai utilizzando.