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

Contenuti

Finestra del prompt dei comandi in Windows 10

Gli ambienti della riga di comando come il prompt dei comandi di Windows e PowerShell utilizzano gli spazi per separare comandi e argomenti, ma i nomi di file e cartelle possono anche contenere spazi. Per specificare un percorso di file con uno spazio all'interno, deve “fuga”.

Riga di comando 101: Perché devi scappare dagli spazi

“Fuga” di un personaggio cambia significato. Come esempio, l'escape di uno spazio farà sì che la shell lo tratti come un carattere di spazio standard piuttosto che un carattere speciale che separa gli argomenti della riga di comando.

Come esempio, supponiamo di avere un file di testo di cui vuoi vedere il contenuto. Puoi farlo con il comando type. Supponendo che il file di testo sia in C:TestFile.txt, il seguente comando al prompt dei comandi visualizzerà il suo contenuto:

tipo C:FileTest.txt

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

tipo C:Test FolderTest File.txt

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

Errore del prompt dei comandi quando gli spazi non sono sfuggiti

Tre alternative per sfuggire agli spazi in Windows

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

  • Compreso il percorso (o parti di esso) tra virgolette (").
  • Aggiunta di un accento circonflesso (^) prima di ogni spazio. (Funziona solo nel prompt dei comandi / CMD, e non sembra funzionare con tutti i comandi).
  • Aggiunta di un carattere con accento grave (`) prima di ogni spazio. (Funziona solo in PowerShell, ma funziona sempre).

Ti mostreremo come utilizzare ciascun metodo.

Racchiudere il percorso tra virgolette (“)

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

genere "C:Test FolderTest File.txt"

In realtà, puoi racchiudere parti del percorso tra virgolette se preferisci. Come esempio, supponiamo che tu abbia un file chiamato File.txt in quella cartella. Potresti eseguire quanto segue:

tipo C:"Cartella di prova"File.txt

Nonostante questo, Non è necessario; Nella maggior parte dei casi, puoi usare le virgolette in tutto il percorso.

Questa soluzione funziona sia nell'ambiente del prompt dei comandi tradizionale (CMD) come in Windows PowerShell.

Includi spazi tra virgolette al prompt dei comandi

Qualche volta: usa il carattere Caret per sfuggire agli spazi (^)

Al prompt dei comandi, il cursore (^) ti permetterà di fuggire dagli spazi, in teoria. Basta aggiungerlo prima di ogni spazio nel nome del file. (Troverai questo carattere nella riga dei numeri della tua tastiera. Per digitare il caret, premi Maiusc + 6).

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

Come esempio, con il nostro comando di esempio, Eseguirei quanto segue e non funzionerebbe:

tipo C:Test^ FolderTest^ File.txt

Errore di escape dello spazio caret al prompt dei comandi

D'altra parte, se proviamo ad aprire il nostro file direttamente digitando il suo percorso al prompt dei comandi, possiamo vedere che il cursore esce correttamente dagli spazi:

C:Test^ FolderTest^ File.txt

Lo spazio caret in fuga funziona al prompt dei comandi

Quindi, Quando funziona?? Bene, secondo la nostra ricerca, sembra funzionare con alcune app e non con altre. Il tuo chilometraggio può variare a seconda del comando che stai utilizzando. La gestione del prompt dei comandi di questo personaggio è strana. Provalo con qualsiasi comando tu stia usando, se siete interessati, Potrebbe funzionare oppure no.

Per mantenere la coerenza, Ti consigliamo di attenersi alle virgolette doppie al prompt dei comandi, o passa a PowerShell e usa il metodo dell'accento grave di seguito.

PowerShell: usa l'accento grave (`)

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

tipo C:Test` FolderTest` File.txt

Ogni carattere con accento grave dice a PowerShell di sfuggire al carattere successivo.

Si prega di notare che funziona solo in ambiente PowerShell. Dovrai usare il cursore nel prompt dei comandi.

Fuga dagli spazi gravi in ​​PowerShell


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

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.