Opdrachtregelomgevingen zoals Windows Command Prompt en PowerShell gebruiken spaties om opdrachten en argumenten van elkaar te scheiden, maar bestands- en mapnamen kunnen ook spaties bevatten. Om een bestandspad op te geven dat een spatie bevat, moet u eraan "escapen".
Waarom escape-ruimtes?
'Ontsnappen' of ontsnappen aan een personage verandert de betekenis ervan. Als u bijvoorbeeld aan een spatie ontsnapt, zal de shell deze behandelen als een spatieteken in plaats van als een speciaal teken dat de argumenten op de opdrachtregel scheidt.
Stel dat u een tekstbestand heeft en de inhoud wilt bekijken. U kunt dit doen met het type-commando. Ervan uitgaande dat het tekstbestand zich op C:\Test\File.txt bevindt , zal de volgende opdracht in de opdrachtprompt de inhoud ervan weergeven:
type C:\Test\File.txt
Wat nu als u hetzelfde bestand op C:\Test Folder\Test File.txt hebt ? Als u de onderstaande opdracht probeert uit te voeren, werkt dit niet: de spaties in het bestandspad zitten in de weg.
type C:\Test Folder\Test File.txt
De opdrachtregel denkt dat u probeert te zoeken naar een bestand met de naam C:\Test en zegt dat het " het opgegeven pad niet kan vinden " (kan het opgegeven pad niet vinden).

De opdrachtregel kan het opgegeven pad niet vinden
3 manieren om aan witruimte op Windows te ontsnappen
Er zijn drie verschillende manieren waarop u aan bestandspaden kunt ontsnappen in Windows:
- Door het pad (of delen ervan) tussen dubbele aanhalingstekens ("") te plaatsen.
- Door vóór elke spatie een dakje (^) toe te voegen. (Dit werkt alleen in de opdrachtprompt/CMD en het lijkt niet bij elk commando te werken).
- Door vóór elke spatie een accentteken (`) toe te voegen. (Dit werkt alleen in PowerShell, maar het werkt altijd).
In dit artikel wordt uitgelegd hoe u elke methode kunt gebruiken.
Plaats het pad tussen aanhalingstekens
De standaardmanier om ervoor te zorgen dat Windows een bestandspad correct verwerkt, is door het tussen dubbele aanhalingstekens ("") te plaatsen. Met de bovenstaande voorbeeldopdracht zou de opdracht bijvoorbeeld als volgt worden uitgevoerd:
type "C:\Test Folder\Test File.txt"
Je kunt delen van het pad zelfs tussen aanhalingstekens plaatsen als je wilt. Stel dat u bijvoorbeeld een bestand met de naam File.txt in die map hebt staan. U kunt het volgende uitvoeren:
type C:\"Test Folder"\File.txt
Dat is echter niet nodig. In de meeste gevallen kunt u eenvoudigweg aanhalingstekens rond het hele pad gebruiken.
Deze oplossing werkt zowel in de traditionele Command Prompt (CMD)-omgeving als in Windows PowerShell.
![Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel]()
Plaats het pad tussen aanhalingstekens
Gebruik het dakje (^) vóór een spatie
In de opdrachtprompt kunt u met het dakje (^) theoretisch aan spaties ontsnappen. Voeg het gewoon toe vóór elke spatie in de bestandsnaam. (Je vindt dit teken in de cijferrij op je toetsenbord. Om het inlasteken in te voeren, druk je op Shift + 6 ).
Het probleem is dat hoewel dit effectief is, het niet altijd werkt. De manier waarop de opdrachtprompt met dit personage omgaat is vreemd.
Als u bijvoorbeeld met de voorbeeldopdracht het volgende uitvoert, werkt de opdracht niet:
type C:\Test^ Folder\Test^ File.txt
![Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel]()
Het bovenstaande commando zal niet werken
Aan de andere kant, als u probeert uw bestand rechtstreeks te openen door het pad in de opdrachtprompt in te voeren, zult u merken dat het dakje-teken correct uit de spatie zal ontsnappen:
C:\Test^ Folder\Test^ File.txt
![Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel]()
Het dakje-teken ontsnapt op de juiste manier aan de witruimte
Dus wanneer werkt het? Op basis van onderzoek lijkt het alleen met sommige apps te werken. Afhankelijk van de opdracht die u gebruikt, kunnen er dingen veranderen. De manier waarop de opdrachtprompt met dit personage omgaat is vreemd. Probeer het met welk commando u ook gebruikt, het kan wel of niet werken.
Voor consistentie raadt het artikel aan om dubbele aanhalingstekens te gebruiken in de opdrachtprompt of om over te schakelen naar PowerShell en de onderstaande methode te gebruiken.
Gebruik accenttekens (`)
PowerShell gebruikt het accentteken (`) als escape-teken. Voeg het gewoon toe vóór elke spatie in de bestandsnaam. (Je vindt dit teken boven de Tab- toets en onder de Esc- toets op je toetsenbord).
type C:\Test` Folder\Test` File.txt
Voor elk teken met accenten is PowerShell vereist om te ontsnappen aan het teken dat volgt.
Houd er rekening mee dat dit alleen werkt in PowerShell-omgevingen. U moet het caret-teken gebruiken in de opdrachtprompt.
![Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel Hoe u kunt ontsnappen aan spaties in bestandspaden op de Windows-opdrachtregel]()
Gebruik accenttekens (`)
Als u bekend bent met UNIX-achtige besturingssystemen zoals Linux en macOS, bent u wellicht bekend met het gebruik van het backslash-teken (\) vóór een spatie om eraan te ontsnappen. Windows gebruikt dit teken voor reguliere bestandspaden, dus het werkt niet. De cursisten (^) en accenttekens (`) zijn de Windows-versie van de backslash, afhankelijk van de opdrachtregelshell die u gebruikt.
Bekijk meer: