เมื่อรวมอักขระเครื่องหมายคำพูดตามตัวอักษรในสตริงที่ยกมาใน Powershell ฉันจะหลีกเลี่ยงอักขระเครื่องหมายคำพูดเพื่อระบุว่าเป็นตัวอักษรแทนที่จะเป็นตัวกำหนดขอบเขตของสตริงได้อย่างไร
เมื่อรวมอักขระเครื่องหมายคำพูดตามตัวอักษรในสตริงที่ยกมาใน Powershell ฉันจะหลีกเลี่ยงอักขระเครื่องหมายคำพูดเพื่อระบุว่าเป็นตัวอักษรแทนที่จะเป็นตัวกำหนดขอบเขตของสตริงได้อย่างไร
คำตอบ:
จาก help about_quoting_rules
ในการทำเครื่องหมายอัญประกาศคู่ปรากฏในสตริงให้ล้อมรอบสตริงทั้งหมดในเครื่องหมายอัญประกาศเดี่ยว ตัวอย่างเช่น:
'As they say, "live and learn."'
เอาต์พุตจากคำสั่งนี้คือ:
As they say, "live and learn."
คุณยังสามารถใส่สตริงที่มีเครื่องหมายคำพูดเดี่ยวในสตริงที่มีเครื่องหมายคำพูดคู่ ตัวอย่างเช่น:
"As they say, 'live and learn.'"
เอาต์พุตจากคำสั่งนี้คือ:
As they say, 'live and learn.'
ในการบังคับให้ Windows PowerShell ตีความเครื่องหมายคำพูดคู่โดยแท้จริงให้ใช้อักขระ backtick สิ่งนี้จะป้องกัน Windows PowerShell จากการตีความเครื่องหมายคำพูดเป็นตัวคั่นสตริง ตัวอย่างเช่น:
"Use a quotation mark (`") to begin a string."
เอาต์พุตจากคำสั่งนี้คือ:
Use a quotation mark (") to begin a string.
เนื่องจากเนื้อหาของสตริงที่ยกมาเดี่ยวถูกตีความอย่างแท้จริงคุณไม่สามารถใช้อักขระ backtick เพื่อบังคับให้ตีความตัวอักษรในสตริงที่ยกมาเดี่ยว
การใช้อักขระ backtick เพื่อหลีกเลี่ยงเครื่องหมายอัญประกาศอื่น ๆ ในสตริงที่ยกมาเดี่ยวไม่ได้รับการสนับสนุนใน PowerShell เวอร์ชันล่าสุด ใน PowerShell เวอร์ชันก่อนหน้านี้อักขระ backtick escape สามารถใช้เพื่อหลีกเลี่ยงอักขระเครื่องหมายคำพูดคู่ภายในสตริงที่ยกมาเดี่ยวตามรายละเอียดในhelp about_quoting
เอกสารที่มีอยู่ใน PowerShell เวอร์ชันเหล่านั้น
'As they say, ''live and learn.'''
เอาต์พุตAs they say, 'live and learn.'
เช่นเดียวกับตัวอย่างที่สองของคุณ
เพื่อชมเชยสิ่งที่มีอยู่แล้วที่นี่คุณควรรู้ด้วยว่าคุณสามารถหลีกเลี่ยงการพูด (เดี่ยวหรือคู่) ด้วยการพูดเอง นั่นหมายความว่าคุณสามารถทำได้:
"นี่คือตัวอย่างของสตริง" "ที่มีเครื่องหมายคำพูดคู่" "
และนี่:
'คราวนี้มัน' '' คำพูดเดียว ''
ประโยชน์ที่ไวยากรณ์นี้มีให้นั้นง่าย: มันง่ายกว่าที่จะพิมพ์คำพูดเดียวกันสองครั้งมากกว่าที่จะหลีกเลี่ยงการพูดด้วย backtick
single 'text' ดังนั้นจึงถือเป็นข้อความตัวอักษรจากนั้นหลีกเลี่ยงอักขระพิเศษใด ๆ ที่ใช้ "\"
เช่นสตริงนี้: "ตามที่พวกเขาพูด" มีชีวิตอยู่และเรียนรู้ "" กลายเป็นสตริงนี้ 'ตามที่พวกเขาพูด \ "มีชีวิตและเรียนรู้ \"
PowerShell.exe -Command
และพยายามส่งอัญประกาศคู่ในพารามิเตอร์ imgur.com/1btjoQW
about_quoting
ช่วยเหลืออย่างใดอย่างหนึ่ง เล่น powershell v5.1 การหลบเลี่ยงอัญประกาศคู่หรือซ้อนการเสนอราคาประเภทต่าง ๆ ยังคงทำงานตามที่คาดไว้