Bagaimana Anda mengambil perintah seperti berikut ini di PowerShell dan membaginya ke beberapa baris?
&"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe" -verb:sync -source:contentPath="c:\workspace\xxx\master\Build\_PublishedWebsites\xxx.Web" -dest:contentPath="c:\websites\xxx\wwwroot\,computerName=192.168.1.1,username=administrator,password=xxx"
powershell
asgerhallas
sumber
sumber
Jawaban:
Membuntuti karakter backtick, yaitu,
Ruang putih penting. Format yang diperlukan adalah Space`Enter.
sumber
Metode lain untuk melewatkan argumen yang lebih bersih adalah splatting .
Tetapkan parameter dan nilai Anda sebagai hashtabel seperti ini:
Dan kemudian panggil commandlet Anda seperti ini:
Microsoft Docs: Tentang Splatting
TechNet Magazine 2011: Windows PowerShell: Splatting
Sepertinya itu berfungsi dengan Powershell 2.0 dan lebih tinggi
sumber
$params.add('name','Bob Newhart')
ramblingcookiemonster.wordpress.com/2014/12/01/…Ah, dan jika Anda memiliki string yang sangat panjang yang ingin Anda hancurkan, katakanlah tentang HTML, Anda dapat melakukannya dengan meletakkan a
@
di setiap sisi luar"
- seperti ini:Anda mendapatkan persis ini:
Dan jika Anda menggunakan Notepad ++ , ia bahkan akan menyorot dengan benar sebagai blok string.
Sekarang, jika Anda ingin string itu mengandung tanda kutip ganda juga, cukup tambahkan, seperti ini:
Anda akan mendapatkan ini:
Namun, jika Anda menggunakan tanda kutip ganda dalam @ -string seperti itu, Notepad ++ tidak menyadarinya dan akan mengganti pewarnaan sintaksis seolah-olah itu tidak dikutip atau dikutip, tergantung pada kasusnya.
Dan apa yang lebih baik adalah ini: di mana pun Anda memasukkan variabel $, itu TIDAK DIartikan! (Jika Anda membutuhkan tanda dolar dalam teks, Anda menghindarinya dengan tanda centang seperti ini: `` $ not-a-variable`.)
MEMPERHATIKAN! Jika Anda tidak menempatkan final
"@
di awal baris , itu akan gagal. Butuh satu jam bagi saya untuk mengetahui bahwa saya tidak bisa memasukkan itu dalam kode saya!Berikut adalah MSDN pada subjek: Menggunakan Windows PowerShell "Here-Strings"
sumber
Anda dapat menggunakan operator backtick:
Itu masih agak terlalu lama untuk seleraku, jadi aku akan menggunakan beberapa variabel bernama:
sumber
Jika Anda memiliki fungsi:
Jika Anda memiliki cmdlet :
Jika Anda memiliki aplikasi:
Atau
sumber
Di PowerShell 5 dan PowerShell 5 ISE, Anda juga dapat menggunakan hanya Shift+ Enteruntuk pengeditan multiline (alih-alih backtick standar
`
pada akhir setiap baris):sumber
Metode percikan dengan Perhitungan
Jika Anda memilih metode percikan, waspadalah perhitungan yang dilakukan menggunakan parameter lain. Dalam prakteknya, kadang-kadang saya harus mengatur variabel terlebih dahulu kemudian membuat tabel hash. Juga, format tidak memerlukan tanda kutip tunggal di sekitar nilai kunci atau titik koma (seperti disebutkan di atas).
Catatan: Array file berisi informasi yang akan memengaruhi bagaimana spreadsheet diisi.
sumber
Cara lain untuk memecah string di beberapa baris adalah dengan meletakkan ekspresi kosong di tengah-tengah string, dan memecahnya di garis:
string sampel:
"stackoverflow stackoverflow stackoverflow stackoverflow stackoverflow"
rusak melintasi garis:
sumber