Categories: Tecnologia

Como escapar de espaços em caminhos de arquivo na linha de comando do Windows

Ambientes de linha de comando, como o Prompt de Comando do Windows e o PowerShell, usam espaços para separar comandos e argumentos – mas os nomes de arquivos e pastas também podem conter espaços. Para especificar um caminho de arquivo com um espaço dentro dele, você precisará “escapar” dele.

Linha de comando 101: Por que você precisa escapar do Spaces

“Escapar” de um personagem muda seu significado. Por exemplo, escapar um espaço fará com que o shell o trate como um caractere de espaço padrão, em vez de um caractere especial que separa os argumentos da linha de comando.

Por exemplo, digamos que você tenha um arquivo de texto cujo conteúdo deseja ver. Você pode fazer isso com o comando type. Supondo que o arquivo de texto esteja em C:\Test\File.txt, o seguinte comando no Prompt de Comando mostrará seu conteúdo:

digite C: \ Test \ File.txt

Ótimo. Agora, e se você tiver o mesmo arquivo em C:\Test Folder\Test File.txt? Se você tentar executar o comando abaixo, não funcionará – esses espaços no caminho do arquivo estão atrapalhando.

digite C: \ Test Folder \ Test File.txt

A linha de comando pensa que você está tentando procurar um arquivo chamado  C:\Teste diz que “não é possível encontrar o caminho especificado”.

Três maneiras de escapar de espaços no Windows

Existem três maneiras diferentes de escapar de caminhos de arquivo no Windows:

  • Colocando o caminho (ou partes dele) entre aspas duplas (”).
  • Adicionando um caractere circunflexo (^) antes de cada espaço. (Isso só funciona no Prompt de Comando / CMD e não parece funcionar com todos os comandos.)
  • Adicionando um caractere de acento grave (`) antes de cada espaço. (Isso só funciona no PowerShell, mas sempre funciona.)

Mostraremos como usar cada método.

Coloque o caminho entre aspas (”)

A maneira padrão de garantir que o Windows trate um caminho de arquivo adequadamente é colocá-lo entre aspas duplas (”). Por exemplo, com nosso comando de amostra acima, apenas executaríamos o seguinte:

digite "C: \ Test Folder \ Test File.txt"

Na verdade, você pode colocar partes do caminho entre aspas, se preferir. Por exemplo, digamos que você tenha um arquivo denominado File.txt nessa pasta. Você pode executar o seguinte:

digite C: \ "Pasta de teste" \ Arquivo.txt

No entanto, isso não é necessário – na maioria dos casos, você pode apenas usar aspas em todo o caminho.

Esta solução funciona tanto no ambiente tradicional de Prompt de Comando (CMD) quanto no Windows PowerShell.

Às vezes: use o caractere circunflexo para escapar de espaços (^)

No prompt de comando, o caractere circunflexo (^) permitirá que você escape de espaços – em teoria. Basta adicioná-lo antes de cada espaço no nome do arquivo. (Você encontrará este caractere na linha numérica do teclado. Para digitar o caractere circunflexo, pressione Shift + 6.)

Aqui está o problema: embora deva funcionar, e às vezes funciona, não funciona o tempo todo. O modo como o Prompt de Comando lida com esse personagem é estranho.

Por exemplo, com nosso comando de amostra, você executaria o seguinte e não funcionaria:

tipo C: \ Test ^ Folder \ Test ^ File.txt

Por outro lado, se tentarmos abrir nosso arquivo diretamente digitando seu caminho no Prompt de Comando, podemos ver que o caractere circunflexo escapa corretamente dos espaços:

C: \ Test ^ Folder \ Test ^ File.txt

Então, quando isso funciona? Bem, com base em nossa pesquisa, parece funcionar com alguns aplicativos e não com outros. Sua milhagem pode variar dependendo do comando que você está usando. O modo como o Prompt de Comando lida com esse personagem é estranho. Experimente com qualquer comando que estiver usando, se estiver interessado – pode ou não funcionar.

Para manter a consistência, recomendamos que você use aspas duplas no prompt de comando ou mude para o PowerShell e use o método de acento grave abaixo.

PowerShell: use o caractere com sotaque grave (`)

O PowerShell usa o caractere de acento grave (`) como seu caractere de escape. Basta adicioná-lo antes de cada espaço no nome do arquivo. (Você encontrará esse caractere acima da tecla Tab e abaixo da tecla Esc no teclado.)

tipo C: \ Test` Folder \ Test` File.txt

Cada caractere de acento grave diz ao PowerShell para escapar do caractere a seguir.

Observe que isso só funciona no ambiente PowerShell. Você terá que usar o caractere circunflexo no prompt de comando.


Se você está familiarizado com sistemas operacionais semelhantes ao UNIX, como Linux e macOS, pode estar acostumado a usar o caractere de barra invertida (\) antes de um espaço de escape. O Windows usa isso para caminhos de arquivo normais, então não funciona – os caracteres circunflexo (^) e acento grave (`) são a versão do Windows da barra invertida, dependendo de qual shell de linha de comando você está usando.

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago