Comment échapper aux espaces dans les chemins de fichiers sur la ligne de commande Windows

Les environnements de ligne de commande tels que l’invite de commande Windows et PowerShell utilisent des espaces pour s√©parer les commandes et les arguments, mais les noms de fichiers et de dossiers peuvent √©galement contenir des espaces. Pour sp√©cifier un chemin de fichier avec un espace √† l’int√©rieur, vous devrez ¬ę√©chapper¬Ľ.

Ligne de commande 101: pourquoi vous devez échapper aux espaces

¬ęS’√©chapper¬Ľ d’un personnage change sa signification. Par exemple, en √©chappant un espace, le shell le traitera comme un caract√®re d’espace standard plut√īt que comme un caract√®re sp√©cial qui s√©pare les arguments de ligne de commande.

Par exemple, disons que vous avez un fichier texte dont vous souhaitez voir le contenu. Vous pouvez le faire avec la commande type. En supposant que le fichier texte est √† C:TestFile.txt, la commande suivante dans l’invite de commande affichera son contenu:

type C:TestFile.txt

G√©nial. Maintenant, que faire si vous avez le m√™me fichier √† C:Test FolderTest File.txt? Si vous essayez d’ex√©cuter la commande ci-dessous, cela ne fonctionnera pas – ces espaces dans le chemin d’acc√®s au fichier vous g√™nent.

type C:Test FolderTest File.txt

La ligne de commande pense que vous essayez de rechercher un fichier appel√© C:Test et dit qu’il ¬ę¬†ne peut pas trouver le chemin sp√©cifi√©.¬†¬Ľ

Erreur d'invite de commande lorsque vous n'échappez pas aux espaces

Trois fa√ßons d’√©chapper aux espaces sous Windows

Il existe trois fa√ßons diff√©rentes d’√©chapper aux chemins de fichiers sous Windows:

  • En pla√ßant le chemin (ou des parties de celui-ci) entre guillemets doubles (‚ÄĚ).
  • En ajoutant un signe d’insertion (^) avant chaque espace. (Cela ne fonctionne que dans l’invite de commande / CMD, et cela ne semble pas fonctionner avec chaque commande.)
  • En ajoutant un caract√®re d’accent grave (`) avant chaque espace. (Cela ne fonctionne que dans PowerShell, mais cela fonctionne toujours.)

Nous allons vous montrer comment utiliser chaque méthode.

Ins√©rez le chemin entre guillemets (¬ę¬†)

La mani√®re standard de s’assurer que Windows traite correctement un chemin de fichier est de le mettre entre guillemets doubles (‚ÄĚ). Par exemple, avec notre exemple de commande ci-dessus, nous allons simplement ex√©cuter ce qui suit √† la place:

type "C:Test FolderTest File.txt"

Vous pouvez en fait mettre des parties du chemin entre guillemets si vous préférez. Par exemple, disons que vous aviez un fichier nommé File.txt dans ce dossier. Vous pouvez exécuter ce qui suit:

type C:"Test Folder"File.txt

Cependant, ce n’est pas n√©cessaire – dans la plupart des cas, vous pouvez simplement utiliser des guillemets autour de l’ensemble du chemin.

En relation :  Cr√©ez un meilleur pack Apple One avec les applications que vous utilisez r√©ellement

Cette solution fonctionne √† la fois dans l’environnement d’invite de commande (CMD) traditionnel et dans Windows PowerShell.

Placer les espaces entre guillemets doubles dans l'invite de commandes

Parfois: utilisez le caractère Caret pour échapper aux espaces (^)

Dans l’invite de commandes, le caract√®re curseur (^) vous permettra d’√©chapper aux espaces – en th√©orie. Ajoutez-le simplement avant chaque espace dans le nom du fichier. (Vous trouverez ce caract√®re dans la ligne num√©rique de votre clavier. Pour saisir le caract√®re d’insertion, appuyez sur Maj + 6.)

Voici le probl√®me: bien que cela devrait fonctionner, et cela fonctionne parfois, cela ne fonctionne pas tout le temps. La gestion de ce personnage par l’invite de commande est √©trange.

Par exemple, avec notre exemple de commande, vous exécuteriez ce qui suit et cela ne fonctionnerait pas:

type C:Test^ FolderTest^ File.txt

Erreur d'échappement de l'espace d'insertion dans l'invite de commande

D’autre part, si nous essayons d’ouvrir notre fichier directement en tapant son chemin dans l’invite de commandes, nous pouvons voir que le caract√®re caret √©chappe correctement aux espaces:

C:Test^ FolderTest^ File.txt

L'espace caret s'échappant du travail dans l'invite de commande

Alors quand √ßa marche? Eh bien, d’apr√®s nos recherches, cela semble fonctionner avec certaines applications et pas avec d’autres. Votre kilom√©trage peut varier en fonction de la commande que vous utilisez. La gestion de ce personnage par l’invite de commande est √©trange. Essayez-le avec la commande que vous utilisez, si cela vous int√©resse – cela peut fonctionner ou non.

Pour plus de coh√©rence, nous vous recommandons de vous en tenir aux guillemets doubles dans l’invite de commandes ou de basculer vers PowerShell et d’utiliser la m√©thode d’accent grave ci-dessous.

PowerShell: utilisez le caract√®re d’accent grave (`)

PowerShell utilise le caract√®re d’accent grave (`) comme caract√®re d’√©chappement. Ajoutez-le simplement avant chaque espace dans le nom du fichier. (Vous trouverez ce caract√®re au-dessus de la touche Tab et sous la touche √Čchap de votre clavier.)

type C:Test` FolderTest` File.txt

Chaque caract√®re d’accent grave indique √† PowerShell d’√©chapper au caract√®re suivant.

Notez que cela ne fonctionne que dans l’environnement PowerShell. Vous devrez utiliser le caract√®re caret dans l’invite de commande.

√Čchapper aux espaces avec l'accent grave dans PowerShell


Si vous √™tes familier avec les syst√®mes d’exploitation de type UNIX comme Linux et macOS, vous pouvez √™tre habitu√© √† utiliser le caract√®re anti-slash () avant un espace pour l’√©chapper. Windows l’utilise pour les chemins de fichiers normaux, donc cela ne fonctionne pas – les caract√®res caret (^) et accent grave (`) sont la version Windows de la barre oblique inverse, selon le shell de ligne de commande que vous utilisez.

body #primary .entry-content ul # nextuplist {list-style-type: none; margin-left: 0px; padding-left: 0px;} body #primary .entry-content ul # nextuplist li a {text-decoration: none ; couleur: # 1d55a9;}

En relation :  5 conseils de formation vid√©o sur la capture d'√©cran avec ActivePresenter

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.