Cách thoát dấu cách trong đường dẫn tệp trên dòng lệnh Windows

Tác giả sysadmin, T.Chín 19, 2023, 08:40:34 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách thoát dấu cách trong đường dẫn tệp trên dòng lệnh Windows


Chúc may mắn gõ một đường dẫn tập tin mà không có chúng. Để thoát khỏi khoảng trắng trong đường dẫn tệp Windows, hãy đặt dấu ngoặc kép xung quanh phần đường dẫn có khoảng trắng trong đó. Ví dụ: C:\"Thư mục kiểm tra"\text.txt. Bạn cũng có thể đặt dấu ngoặc kép quanh toàn bộ đường dẫn để đảm bảo không bỏ sót bất kỳ khoảng trắng nào.


Các môi trường dòng lệnh như Dấu nhắc lệnh của Windows và PowerShell sử dụng dấu cách để phân tách các lệnh và đối số — nhưng tên tệp và thư mục cũng có thể chứa dấu cách. Để chỉ định đường dẫn tệp có khoảng trắng bên trong, bạn cần phải "thoát" nó.

1. Dòng lệnh 101: Tại sao bạn phải thoát khỏi dấu cách

"Thoát" một ký tự thay đổi ý nghĩa của nó. Ví dụ: việc thoát khỏi một khoảng trắng sẽ khiến shell coi nó giống như một ký tự khoảng trắng tiêu chuẩn thay vì một ký tự đặc biệt ngăn cách các đối số dòng lệnh.

Ví dụ: giả sử bạn có một tệp văn bản mà bạn muốn xem nội dung. Bạn có thể làm điều đó bằng lệnh type. Giả sử tệp văn bản ở C:\Test\File.txt, lệnh sau trong Dấu nhắc Lệnh sẽ hiển thị nội dung của nó:

Mã nguồn [Chọn]
type C:\Test\File.txt
Tuyệt vời. Bây giờ, nếu bạn có cùng một tệp tại thì sao C:\Test Folder\Test File.txt? Nếu bạn thử chạy lệnh bên dưới, nó sẽ không hoạt động — những khoảng trống trong đường dẫn tệp đang gây cản trở.

Mã nguồn [Chọn]
type C:\Test Folder\Test File.txt
Dòng lệnh cho rằng bạn đang cố gắng tìm kiếm một tệp có tên C:\Testvà nói rằng "không thể tìm thấy đường dẫn được chỉ định".


2. Ba cách để thoát khỏi không gian trên Windows

Có ba cách khác nhau để bạn có thể thoát khỏi đường dẫn tệp trên Windows:

  • Bằng cách đặt đường dẫn (hoặc các phần của nó) trong dấu ngoặc kép ( " ).
  • Bằng cách thêm ký tự dấu mũ ( ^ ) trước mỗi khoảng trắng. (Điều này chỉ hoạt động trong Dấu nhắc lệnh/CMD và dường như nó không hoạt động với mọi lệnh.)
  • Bằng cách thêm ký tự dấu trọng âm ( ` ) trước mỗi khoảng trắng. (Điều này chỉ hoạt động trong PowerShell nhưng nó luôn hoạt động.)

Chúng tôi sẽ chỉ cho bạn cách sử dụng từng phương pháp.

3. Đặt đường dẫn trong dấu ngoặc kép ( " )

Cách tiêu chuẩn để đảm bảo Windows xử lý đường dẫn tệp đúng cách là đặt nó trong các ký tự dấu ngoặc kép ( " ). Ví dụ: với lệnh mẫu ở trên, thay vào đó, chúng tôi chỉ chạy như sau:

Mã nguồn [Chọn]
type "C:\Test Folder\Test File.txt"
Bạn thực sự có thể đặt các phần của đường dẫn trong dấu ngoặc kép nếu muốn. Ví dụ: giả sử bạn có một tệp có tên File.txt trong thư mục đó. Bạn có thể chạy như sau:

Mã nguồn [Chọn]
type C:\"Test Folder"\File.txt
Tuy nhiên, điều đó là không cần thiết — trong hầu hết các trường hợp, bạn chỉ có thể sử dụng dấu ngoặc kép quanh toàn bộ đường dẫn.

Giải pháp này hoạt động cả trong môi trường Dấu nhắc Lệnh (CMD) truyền thống, trong Windows PowerShell và trong Windows Terminal.


4. Đôi khi: Sử dụng ký tự dấu mũ để thoát dấu cách ( ^ )

Trong Dấu nhắc Lệnh, ký tự dấu mũ ( ^ ) sẽ cho phép bạn thoát khỏi dấu cách - theo lý thuyết. Chỉ cần thêm nó trước mỗi khoảng trắng trong tên tệp. (Bạn sẽ tìm thấy ký tự này trong hàng số trên bàn phím. Để nhập ký tự dấu mũ, hãy nhấn Shift+6.)

Đây là vấn đề: Mặc dù điều này có thể hoạt động và đôi khi nó hoạt động nhưng không phải lúc nào nó cũng hoạt động. Cách xử lý ký tự này của Command Promt thật kỳ lạ.

Ví dụ: với lệnh mẫu của chúng tôi, bạn chạy lệnh sau và nó không hoạt động:

Mã nguồn [Chọn]
type C:\Test^ Folder\Test^ File.txt

Mặt khác, nếu chúng ta thử mở tệp trực tiếp bằng cách nhập đường dẫn của nó vào Dấu nhắc Lệnh, chúng ta có thể thấy rằng ký tự dấu mũ thoát khỏi khoảng trắng một cách chính xác:

Mã nguồn [Chọn]
C:\Test^ Folder\Test^ File.txt

Vậy khi nào nó hoạt động? Chà, dựa trên nghiên cứu của chúng tôi, nó dường như hoạt động với một số ứng dụng chứ không phải những ứng dụng khác. Số dặm của bạn có thể thay đổi tùy thuộc vào lệnh bạn đang sử dụng. Cách xử lý ký tự này của Command Promt thật kỳ lạ. Hãy thử với bất kỳ lệnh nào bạn đang sử dụng, nếu bạn quan tâm - nó có thể hoạt động hoặc không.

Để nhất quán, chúng tôi khuyên bạn nên sử dụng dấu ngoặc kép trong Dấu nhắc lệnh hoặc chuyển sang PowerShell và sử dụng phương pháp dấu trọng âm bên dưới.

5. Ký tự thoát của PowerShell: Sử dụng Ký tự trọng âm ( ` )

PowerShell sử dụng ký tự dấu trọng âm ( ` ) làm ký tự thoát. Chỉ cần thêm nó trước mỗi khoảng trắng trong tên tệp. (Bạn sẽ tìm thấy ký tự này phía trên phím Tab và bên dưới phím Esc trên bàn phím của bạn.)

Mã nguồn [Chọn]
type C:\Test` Folder\Test` File.txt
Mỗi ký tự có dấu nghiêm trọng sẽ yêu cầu PowerShell thoát khỏi ký tự sau.

Điều này chỉ hoạt động trong môi trường PowerShell. Bạn sẽ phải sử dụng ký tự dấu mũ trong Dấu nhắc Lệnh.


Nếu quen với các hệ điều hành giống UNIX như Linux và macOS, bạn có thể quen với việc sử dụng ký tự dấu gạch chéo ngược ( \ ) trước dấu cách để thoát khỏi nó. Windows sử dụng điều này cho các đường dẫn tệp thông thường, vì vậy nó không hoạt động — ký tự dấu mũ ( ^ ) và dấu trọng âm ( ` ) là phiên bản dấu gạch chéo ngược của Windows, tùy thuộc vào shell dòng lệnh bạn đang sử dụng.