Khi bao gồm một ký tự trích dẫn bằng chữ bên trong một chuỗi được trích dẫn trong Powershell, làm thế nào để tôi thoát khỏi ký tự trích dẫn để chỉ ra đó là một ký tự thay vì một ký tự chuỗi?
Khi bao gồm một ký tự trích dẫn bằng chữ bên trong một chuỗi được trích dẫn trong Powershell, làm thế nào để tôi thoát khỏi ký tự trích dẫn để chỉ ra đó là một ký tự thay vì một ký tự chuỗi?
Câu trả lời:
Từ help about_quoting_rules
Để làm cho dấu ngoặc kép xuất hiện trong một chuỗi, hãy đặt toàn bộ chuỗi trong dấu ngoặc kép. Ví dụ:
'As they say, "live and learn."'
Đầu ra từ lệnh này là:
As they say, "live and learn."
Bạn cũng có thể gửi một chuỗi trích dẫn đơn trong một chuỗi trích dẫn kép. Ví dụ:
"As they say, 'live and learn.'"
Đầu ra từ lệnh này là:
As they say, 'live and learn.'
Để buộc Windows PowerShell diễn giải một dấu ngoặc kép theo nghĩa đen, hãy sử dụng ký tự backtick. Điều này ngăn Windows PowerShell diễn giải dấu ngoặc kép dưới dạng dấu phân cách chuỗi. Ví dụ:
"Use a quotation mark (`") to begin a string."
Đầu ra từ lệnh này là:
Use a quotation mark (") to begin a string.
Vì nội dung của các chuỗi trích dẫn đơn được diễn giải theo nghĩa đen, bạn không thể sử dụng ký tự backtick để buộc diễn giải ký tự theo nghĩa đen trong một chuỗi trích dẫn đơn.
Việc sử dụng ký tự backtick để thoát các dấu ngoặc kép khác trong các chuỗi trích dẫn đơn không được hỗ trợ trong các phiên bản gần đây của PowerShell. Trong các phiên bản trước của PowerShell, ký tự thoát backtick có thể được sử dụng để thoát ký tự dấu ngoặc kép trong một chuỗi được trích dẫn như chi tiết trong help about_quoting
tài liệu có sẵn trong các phiên bản PowerShell đó.
'As they say, ''live and learn.'''
đầu ra As they say, 'live and learn.'
, giống như ví dụ thứ hai của bạn.
Ký tự thoát trong Powershell là "` "(dấu nháy đơn / mộ lạc hậu).
Điều này có thể được sử dụng để thoát dấu ngoặc kép và cả các ký tự đặc biệt (ví dụ: tab là `t).
bash
người dùng điên rồ. (Nhân cmd.exe
vật thoát là ^
)
Để khen những gì đã được cung cấp ở đây, bạn cũng nên biết rằng bạn có thể thoát khỏi một trích dẫn (đơn hoặc đôi) với chính trích dẫn đó. Điều đó có nghĩa là bạn có thể làm điều này:
"Đây là một ví dụ về" "chuỗi trích dẫn kép" "."
và cái này:
'Lần này là' 'trích dẫn đơn' '.'
Ưu điểm mà cú pháp này cung cấp rất đơn giản: dễ dàng hơn để nhập cùng một trích dẫn hai lần so với thoát khỏi một trích dẫn với một backtick.
một 'văn bản' để nó được coi là văn bản bằng chữ, sau đó thoát khỏi bất kỳ ký tự đặc biệt nào bằng cách sử dụng "\"
ví dụ: Chuỗi này: "Như họ nói," sống và học. "" Trở thành chuỗi này 'Như họ nói, \ "sống và học. \"'
PowerShell.exe -Command
và cố gắng vượt qua dấu ngoặc kép trong tham số (về mặt kỹ thuật, đó là CMD thoát nó, nhưng hợp lệ trong tham số lệnh). imgur.com/1btjoQW
about_quoting
sự giúp đỡ đó. Chạy powershell v5.1. Thoát dấu ngoặc kép hoặc lồng các loại dấu ngoặc kép khác nhau vẫn hoạt động như mong đợi.