Ketika menyertakan karakter kutipan literal di dalam string yang dikutip dalam Powershell, bagaimana cara saya menghindari karakter kutipan untuk menunjukkan bahwa itu adalah literal alih-alih delimeter string?
Ketika menyertakan karakter kutipan literal di dalam string yang dikutip dalam Powershell, bagaimana cara saya menghindari karakter kutipan untuk menunjukkan bahwa itu adalah literal alih-alih delimeter string?
Jawaban:
Dari help about_quoting_rules
Untuk membuat tanda kutip ganda muncul dalam string, lampirkan seluruh string dalam tanda kutip tunggal. Sebagai contoh:
'As they say, "live and learn."'
Output dari perintah ini adalah:
As they say, "live and learn."
Anda juga dapat melampirkan string yang dikutip tunggal dalam string yang dikutip ganda. Sebagai contoh:
"As they say, 'live and learn.'"
Output dari perintah ini adalah:
As they say, 'live and learn.'
Untuk memaksa Windows PowerShell untuk menafsirkan tanda kutip ganda secara harfiah, gunakan karakter backtick. Ini mencegah Windows PowerShell dari menafsirkan tanda kutip sebagai pembatas string. Sebagai contoh:
"Use a quotation mark (`") to begin a string."
Output dari perintah ini adalah:
Use a quotation mark (") to begin a string.
Karena isi string yang dikutip tunggal ditafsirkan secara harfiah, Anda tidak dapat menggunakan karakter backtick untuk memaksa interpretasi karakter literal dalam string yang dikutip tunggal.
Penggunaan karakter backtick untuk menghindari tanda kutip lainnya dalam string yang dikutip tunggal tidak didukung di PowerShell versi terbaru. Dalam versi PowerShell sebelumnya, karakter backtick escape dapat digunakan untuk keluar dari karakter tanda kutip ganda dalam string yang dikutip tunggal sebagaimana dirinci dalam help about_quoting
dokumen yang tersedia dalam versi PowerShell tersebut.
'As they say, ''live and learn.'''
keluaran As they say, 'live and learn.'
, sama dengan contoh kedua Anda.
Karakter melarikan diri dalam Powershell adalah "` "(tanda kutip / kubur mundur).
Ini dapat digunakan untuk menghindari tanda kutip dan juga karakter khusus (misalnya, tab `t).
bash
pengguna menjadi gila. ( cmd.exe
Karakter melarikan diri adalah ^
)
Untuk memuji apa yang telah disediakan di sini, Anda juga harus tahu bahwa Anda dapat menghindari penawaran (tunggal atau ganda) dengan kutipan itu sendiri. Itu berarti Anda dapat melakukan ini:
"Ini contoh" "string yang dikutip ganda" "."
dan ini:
'Kali ini' 'kutip tunggal' '.'
Keuntungan dari sintaks ini adalah sederhana: lebih mudah untuk mengetikkan penawaran yang sama dua kali dari pada menghindari penawaran dengan backtick.
satu 'teks' sehingga diperlakukan sebagai teks literal, lalu lepas dari setiap karakter khusus menggunakan "\"
mis. String ini: "Seperti kata mereka," hidup dan belajar. "" Menjadi string ini 'Seperti kata mereka, \ "hidup dan belajar. \"'
PowerShell.exe -Command
dan mencoba memberikan tanda kutip ganda dalam parameter (seperti, secara teknis, CMD lolos darinya, tetapi valid dalam parameter perintah). imgur.com/1btjoQW
about_quoting
bantuan itu. Menjalankan powershell v5.1. Melarikan diri dari tanda kutip ganda, atau menumpuk berbagai jenis kutipan masih berfungsi seperti yang diharapkan.