Apakah mungkin membagi baris perintah PowerShell ke beberapa baris?
Dalam Visual Basic saya dapat menggunakan garis bawah ( _
) untuk melanjutkan perintah di baris berikutnya.
powershell
multiline
eXXL
sumber
sumber
sh
perintah, bash conventions tahan sehingga Anda dapat menggunakan backslash. Dalam hal ini skrip Anda juga harus memiliki akhiran gaya unix.Jawaban:
Anda dapat menggunakan spasi diikuti oleh aksen kubur (backtick):
Namun, ini hanya diperlukan dalam kasus seperti yang ditunjukkan di atas. Biasanya Anda mendapatkan kelanjutan garis otomatis ketika sebuah perintah tidak dapat secara sintaksis selesai pada saat itu. Ini termasuk memulai elemen pipa baru:
akan bekerja tanpa masalah karena setelah
|
perintah tidak dapat diselesaikan karena tidak ada elemen pipeline yang lain. Juga membuka kurung kurawal atau jenis kurung lainnya akan memungkinkan kelanjutan garis secara langsung:Mirip dengan
|
koma juga akan berfungsi dalam beberapa konteks:Perlu diingat, meskipun, mirip dengan JavaScript ini otomatis Titik koma Penyisipan , ada beberapa hal yang sama rusak karena garis istirahat terjadi pada titik di mana ia adalah didahului oleh pernyataan valid:
tidak akan bekerja.
Akhirnya, string (dalam semua varietas) juga dapat melampaui satu baris:
Mereka termasuk jeda baris dalam string, lalu.
sumber
|
dan{
.Saya baru tahu bahwa tidak boleh ada karakter apa pun antara centang belakang dan pemecah baris. Bahkan spasi putih akan menyebabkan perintah tidak berfungsi.
sumber
Dalam kebanyakan bahasa mirip C, saya sengaja menempatkan kurung kurawal di tempat yang menurut saya membuat kodenya lebih mudah dibaca.
Pengurai PowerShell mengenali kapan pernyataan jelas tidak lengkap, dan mencari ke baris berikutnya. Misalnya, bayangkan cmdlet yang mengambil parameter blok skrip opsional:
jika blok skrip sangat panjang, Anda mungkin ingin menulis:
Tapi ini tidak akan berhasil: parser akan melihat dua pernyataan. Yang pertama
Get-Foo
dan yang kedua adalah blok skrip. Sebaliknya, saya menulis:Saya bisa menggunakan karakter garis-kelanjutan (`) tetapi itu membuat kode sulit dibaca, dan mengundang bug.
Karena case ini mensyaratkan brace terbuka berada di baris sebelumnya, saya mengikuti pola itu di mana-mana:
Demikian pula, dalam kasus pipa panjang, saya mematahkan karakter pipa (
|
):sumber
if
danforeach
dantry
bekerja? mereka mengizinkan blok skrip pada baris berikutnya ... ini berarti mungkinUntuk memperluas jawaban cristobalito :
Sebagai contoh:
Tanda tangani skrip PowerShell di baris perintah. Tidak ada jeda baris.
sumber
Di PowerShell dan PowerShell ISE, dimungkinkan juga untuk menggunakan Shift+ Enterdi akhir setiap baris untuk pengeditan multiline (bukan backtick standar
`
).sumber
SHIFT-ENTER
triknya.PSReadLine
modul atau yang setara. Dalam fungsi input konsol Windows standar,Enter
danShift+Enter
secara fungsional setara.PSReadline
modul bekerja di konsol tuan rumah hanya (tidak ISE). 2)Shift+Enter
bekerja di host konsol hanya ketika menggunakanPSReadline
. 3)Shift+Enter
selalu bekerja di ISE. 4) Jika menggunakan host konsol tanpaPSReadline
,Shift+Enter
secara fungsional setara dengan menekanEnter
.Jika Anda mencoba memisahkan string menjadi beberapa baris, Anda dapat menggunakan "+". Sebagai contoh:
Akan terlihat seperti:
sumber
Saya berasumsi Anda sedang berbicara tentang command-line - jika ada dalam skrip, maka baris baru bertindak sebagai pembatas perintah.
Di baris perintah, gunakan semi-colon ';'
sumber
;
untuk memisahkan perintah\\
pada backslash apa pun\
."'
untuk menyampaikan alamat aman untuk berganti perintah seperti "'PATH'".Perintah ps1 ini menginstal sertifikat pfx lokal.
sumber
Ada sooo banyak cara untuk melanjutkan garis di PowerShell, dengan pipa, tanda kurung, kurung, operator, titik, bahkan dengan koma. Berikut ini blog tentang hal itu: https://get-powershellblog.blogspot.com/2017/07/bye-bye-backtick-natural-line.html
Anda dapat melanjutkan setelah pernyataan seperti foreach dan jika juga.
sumber
sumber
tidak menggunakan backquote
sumber
Cukup gunakan karakter `untuk memisahkan perintah pada multiline
sumber
Tambahkan saja kotak sudut di sini. Mungkin menghemat 5 menit. Jika Anda menggunakan serangkaian tindakan, Anda harus meletakkan "." di akhir baris, beri spasi diikuti dengan "` "(backtick). Saya menemukan ini dengan cara yang sulit.
sumber