Cách tránh khoảng trắng trong đường dẫn tệp trên dòng lệnh hệ thống Windows

Các môi trường dòng lệnh như Windows Command Prompt và PowerShell sử dụng khoảng trắng để 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 khoảng trắng. Để chỉ định đường dẫn tệp có chứa khoảng trắng, bạn cần “thoát” nó.

Dòng lệnh 101: tại sao bạn cần thoát khỏi phím cách

Sự “trốn thoát” của nhân vật thay đổi ý nghĩa của nó. Ví dụ: thoát một ký tự khoảng trắng sẽ khiến trình bao coi ký tự đó là ký tự khoảng trắng tiêu chuẩn, thay vì ký tự đặc biệt phân tách các đối số dòng lệnh.

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

type C:TestFile.txt

Xuất sắc. Nếu bạn có cùng một tệp trong C:\Test Folder\Test\File.txt thì sao? Nếu bạn cố 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 sẽ cản trở.

type C:Test FolderTest File.txt

Dòng lệnh cho rằng bạn đang cố tìm một tệp có tên C:\Test và cho biết “không thể tìm thấy đường dẫn đã chỉ định”.

Ba cách để thoát khỏi không gian trong hệ thống Windows

Có ba cách khác nhau để thay đổi ý nghĩa của đường dẫn tệp trên hệ thống của bạn Windows:

Bằng cách đặt đường dẫn (hoặc một phần của nó) trong dấu ngoặc kép (“).
Bằng cách thêm dấu mũ (^) trước mỗi khoảng trắng. (Điều này chỉ hoạt động trong Command Prompt/CMD và dường như không hoạt động với mọi lệnh.)
Bằng cách thêm 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.

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

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

type "C:Test FolderTest File.txt"

Nếu muốn, bạn có thể đặt các phần của đường dẫn trong dấu ngoặc kép. Ví dụ: giả sử bạn có một tệp có tên File.txt trong thư mục này. Bạn có thể chạy như sau:

type C:"Test Folder"File.txt

Tuy nhiên, điều này 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 trên toàn bộ đường dẫn.

Giải pháp này hoạt động cả trong môi trường Command Prompt (CMD) truyền thống và trong Windows PowerShell.

Kèm theo khoảng trắng trong dấu ngoặc kép trên dòng lệnh

Đôi khi: sử dụng ký tự dấu mũ để thoát khỏi khoảng trắng (^)

Trên dòng lệnh, dấu mũ (^) sẽ cho phép bạn thoát khỏi khoảng trắng – 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 đề: trong khi điều này sẽ hoạt động và đôi khi nó hoạt động, nó không hoạt động mọi lúc. Việc xử lý ký tự này trên dòng lệnh là 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:

type C:Test^ FolderTest^ File.txt

Lỗi thoát không gian con trỏ trong dòng lệnh

Mặt khác, nếu chúng ta cố gắng mở tệp của mình trực tiếp bằng cách nhập đường dẫn của nó vào dòng lệnh, chúng ta sẽ thấy dấu mũ thoát khỏi khoảng trắng một cách chính xác:

C:Test^ FolderTest^ File.txt

Thoát không gian dấu mũ chạy trên dòng lệnh

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 sử dụng. Việc xử lý ký tự này trên dòng lệnh là lạ. Hãy thử nó 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 trên dòng 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.

PowerShell: sử dụng ký tự trọng âm Grave (`)

PowerShell sử dụng ký tự 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 mình.)

type C:Test` FolderTest` File.txt

Bất kỳ ký tự nào có trọng âm chính sẽ báo cho PowerShell tránh ký tự theo sau.

Lưu ý rằng điều này chỉ hoạt động trong PowerShell. Bạn sẽ cần sử dụng ký tự dấu mũ trên dòng lệnh.

Thoát khỏi không gian với một sự thay đổi nghiêm trọng trong PowerShell

Nếu bạn đã 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 nó. Windows sử dụng điều này cho các đường dẫn tệp bình thường, vì vậy nó không hoạt động — các ký tự dấu mũ (^) và dấu trọng âm (`) là phiên bản của dấu gạch chéo ngược trong hệ thống Windowstùy thuộc vào shell dòng lệnh bạn đang sử dụng.

Những bài viết liên quan

Back to top button