Python thoát không gian trong đường dẫn

Tập lệnh không thể thực thi chạy tệp từ PickupTest. ps1. Tuy nhiên, tôi thấy rằng powershell nhấp nháy, điều đó có nghĩa là nó mở ra để cố lấy tệp nhưng không có gì xảy ra sau đó. Có người đề nghị tôi tìm cách xử lý không gian trong đường dẫn để giải quyết vấn đề. Bất kỳ trợ giúp sẽ được đánh giá cao

WshShell. Run["powershell -file \"" + pathvar + "\*My Tests*\\PickupTest. ps1"]

Cảm ơn

windows-server-powershell

Bình luận

Hiển thị nhận xét 0

Bình luận

5. Cần 1600 ký tự còn lại ký tự

  • Hiển thị cho tất cả người dùng
  • Hiển thị với người đăng gốc & Microsoft
  • Người kiểm duyệt có thể xem
  • Có thể xem bởi người kiểm duyệt và người đăng gốc
  • Khả năng hiển thị nâng cao
Chuyển đổi chế độ hiển thị Nhận xét. Hiển thị hiện tại. Hiển thị với tất cả người dùng

tệp đính kèm. Có thể sử dụng tối đa 10 tệp đính kèm [bao gồm cả hình ảnh] với tối đa 3. 0 MiB mỗi cái và 30. tổng cộng 0 MiB

Để thoát 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 xung quanh toàn bộ đường dẫn để đảm bảo bạn 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 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ó khoảng trắng bên trong, bạn cần "thoát" nó

Dòng lệnh 101. Tại sao bạn phải thoát khỏi không gian

“Thoát khỏi” một ký tự thay đổi ý nghĩa của nó. Ví dụ: thoát khỏi một khoảng trắng sẽ khiến trình bao 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 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 mà bạn muốn xem nội dung của. Bạn có thể làm điều đó với lệnh loại. Giả sử tệp văn bản ở vị trí C:\Test\File.txt, lệnh sau trong Command Prompt sẽ hiển thị nội dung của nó

type C:\Test\File.txt

Tuyệt quá. Bây giờ, nếu bạn có cùng một tệp tại C:\Test Folder\Test File.txt thì sao?

type C:\Test Folder\Test 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 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 một phần của nó] trong dấu ngoặc kép [ ” ]
  • Bằng cách thêm một ký tự 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ư nó không hoạt động với mọi lệnh. ]
  • Bằng cách thêm một ký tự 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

Kèm theo Đường dẫn trong Dấu ngoặc kép [ ” ]

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

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 bạn thích. Ví dụ: giả sử bạn có một tệp có tên Tệp. txt trong thư mục đó. Bạn có thể chạy như sau

type C:\"Test Folder"\File.txt

Tuy nhiên, điều đó không cần thiết—trong hầu hết các trường hợp, bạn chỉ cần sử dụng dấu ngoặc kép xung quanh 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

Thỉnh thoảng. Sử dụng ký tự dấu mũ để thoát khỏi khoảng trắng [ ^ ]

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 của mình. Để nhập ký tự dấu mũ, nhấn Shift+6. ]

Đây là vấn đề. Mặc dù điều này sẽ 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 Prompt thật kỳ lạ

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

type C:\Test^ Folder\Test^ File.txt

Mặt khác, nếu chúng ta thử mở trực tiếp tệp của mình 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 đúng cách

C:\Test^ Folder\Test^ File.txt

Vậy khi nào nó hoạt động? . 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 Prompt 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 trọng âm bên dưới

PowerShell. Sử dụng ký tự trọng âm [ ` ]

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` Folder\Test` File.txt

Mỗi ký tự trọng âm yêu cầu PowerShell thoát khỏi ký tự sau

Lưu ý rằng đ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 Command Prompt

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 [ ` ] là phiên bản Windows của dấu gạch chéo ngược, tùy thuộc vào trình bao dòng lệnh bạn đang sử dụng

Chủ Đề