W środowiskach wiersza poleceń, takich jak Wiersz poleceń systemu Windows i PowerShell , do oddzielania poleceń i argumentów używane są spacje, ale nazwy plików i katalogów mogą również zawierać spacje. Aby określić ścieżkę pliku zawierającą spację, należy ją „ucikować”.
Po co uciekać spacje?
„Ucieczka” lub ucieczka od postaci zmienia jej znaczenie. Na przykład ucieczka spacji spowoduje, że powłoka potraktuje ją jako znak spacji, a nie znak specjalny oddzielający argumenty wiersza poleceń.
Załóżmy, że masz plik tekstowy i chcesz wyświetlić jego zawartość. Można to zrobić za pomocą polecenia type. Zakładając, że plik tekstowy znajduje się w C:\Test\File.txt , następujące polecenie w wierszu poleceń wyświetli jego zawartość:
type C:\Test\File.txt
A co, jeśli masz ten sam plik w C:\Test Folder\Test File.txt ? Jeśli spróbujesz uruchomić poniższe polecenie, nie zadziała — spacje w ścieżce pliku stają się przeszkodą.
type C:\Test Folder\Test File.txt
Wiersz poleceń sądzi, że próbujesz wyszukać plik o nazwie C:\Test i wyświetla komunikat „ nie można znaleźć określonej ścieżki ” (nie można znaleźć określonej ścieżki).

Wiersz poleceń nie może znaleźć określonej ścieżki
3 sposoby na uniknięcie białych znaków w systemie Windows
Istnieją 3 różne sposoby ucieczki ścieżek plików w systemie Windows:
- Ujmując ścieżkę (lub jej część) w cudzysłów („”).
- Dodając znak karetki (^) przed każdą spacją. (Działa to tylko w wierszu poleceń/CMD i nie działa z każdym poleceniem).
- Dodając znak akcentu (`) przed każdą spacją. (Działa to tylko w PowerShell, ale zawsze działa).
W tym artykule dowiesz się, jak korzystać z każdej metody.
Ujmij ścieżkę w cudzysłów
Standardowym sposobem zapewnienia, że system Windows prawidłowo obsługuje ścieżkę pliku, jest uwzględnienie jej w podwójnym cudzysłowie („”). Na przykład powyższe przykładowe polecenie zostanie uruchomione w następujący sposób:
type "C:\Test Folder\Test File.txt"
Jeśli chcesz, możesz umieścić części ścieżki w cudzysłowie. Załóżmy na przykład, że masz w tym folderze plik o nazwie File.txt . Możesz uruchomić następujące czynności:
type C:\"Test Folder"\File.txt
Jednak nie jest to konieczne. W większości przypadków możesz po prostu użyć cudzysłowów na całej ścieżce.
Rozwiązanie to działa zarówno w tradycyjnym środowisku Command Prompt (CMD), jak i w Windows PowerShell.
![Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows]()
Ujmij ścieżkę w cudzysłów
Użyj znaku daszka (^) przed spacją
W wierszu poleceń znak karetki (^) teoretycznie pozwoli ci uciec od spacji. Po prostu dodaj go przed każdą spacją w nazwie pliku. (Znak ten znajdziesz w wierszu numerycznym na swojej klawiaturze. Aby wprowadzić znak karetki, naciśnij Shift + 6 ).
Problem w tym, że chociaż jest to skuteczne, nie zawsze działa. Obsługa tego znaku przez Wiersz Poleceń jest dziwna.
Na przykład w przypadku przykładowego polecenia, jeśli uruchomisz następujące polecenie, polecenie nie będzie działać:
type C:\Test^ Folder\Test^ File.txt
![Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows]()
Powyższe polecenie nie będzie działać
Z drugiej strony, jeśli spróbujesz otworzyć plik bezpośrednio, wprowadzając jego ścieżkę w wierszu poleceń, może się okazać, że znak karetki poprawnie ucieknie ze spacji:
C:\Test^ Folder\Test^ File.txt
![Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows]()
Znak karetki prawidłowo opuszcza białe znaki
Kiedy to działa? Z badań wynika, że działa tylko z niektórymi aplikacjami. Wszystko może się zmienić w zależności od używanego polecenia. Obsługa tego znaku przez Wiersz Poleceń jest dziwna. Spróbuj z dowolnym poleceniem, którego używasz, może działać, ale nie musi.
Aby zachować spójność, w artykule zaleca się używanie podwójnych cudzysłowów w wierszu poleceń lub przejście na PowerShell i skorzystanie z poniższej metody.
Użyj znaków akcentowanych (`)
Program PowerShell używa znaku akcentu (`) jako znaku ucieczki. Po prostu dodaj go przed każdą spacją w nazwie pliku. (Znak ten znajdziesz nad klawiszem Tab i pod klawiszem Esc na klawiaturze).
type C:\Test` Folder\Test` File.txt
Każdy znak akcentowany wymaga programu PowerShell do ucieczki przed znakiem następującym po nim.
Pamiętaj, że działa to tylko w środowiskach PowerShell. Będziesz musiał użyć znaku karetki w wierszu poleceń.
![Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows Jak uniknąć spacji w ścieżkach plików w wierszu poleceń systemu Windows]()
Użyj znaków akcentowanych (`)
Jeśli znasz systemy operacyjne typu UNIX, takie jak Linux i macOS, być może znasz użycie ukośnika odwrotnego (\) przed spacją, aby go uniknąć. System Windows używa tego znaku w zwykłych ścieżkach plików, więc to nie działa. Znaki daszka (^) i akcentu (`) to wersja odwrotnego ukośnika dla systemu Windows, w zależności od używanej powłoki wiersza poleceń.
Zobacz więcej: