Saya ingin menampilkan variabel dan nilai-nilai dalam skrip PowerShell dengan mengatur bendera dan melihat data matriculate seluruh skrip.
Bagaimana saya melakukan ini?
Misalnya, apa yang akan menjadi setara PowerShell dengan kode PHP berikut?
echo "filesizecounter: " . $filesizecounter
powershell
phill
sumber
sumber
Jawaban:
Ada beberapa cara:
Write-Host
: Menulis langsung ke konsol, tidak termasuk dalam fungsi / output cmdlet. Mengizinkan warna latar depan dan latar belakang diatur.Write-Debug
: Menulis langsung ke konsol, jika$DebugPreference
diatur ke Lanjutkan atau Berhenti.Write-Verbose
: Menulis langsung ke konsol, jika$VerbosePreference
diatur ke Lanjutkan atau Berhenti.Yang terakhir ini dimaksudkan untuk informasi tambahan opsional,
Write-Debug
untuk debugging (jadi sepertinya cocok dalam kasus ini).Tambahan : Dalam PSH2 (setidaknya) skrip yang menggunakan pengikatan cmdlet akan secara otomatis mendapatkan
-Verbose
dan-Debug
mengganti parameter, mengaktifkan secara lokalWrite-Verbose
danWrite-Debug
(yaitu mengesampingkan variabel preferensi) seperti yang dilakukan oleh cmdlet dan penyedia yang dikompilasi.sumber
Powershell memiliki gema pemetaan alias untuk
Write-Output
, jadi:echo "filesizecounter : $filesizecounter"
sumber
echo
adalah alias untukWrite-Output
sesuai TechNet Microsoft dan dibahas di siniInterpolasi PowerShell, bukan?
Dalam PHP
dapat juga ditulis sebagai:
Di PowerShell sesuatu seperti ini harus sesuai dengan kebutuhan Anda:
sumber
sumber
Sejauh ini cara termudah untuk bergema di PowerShell, cukup buat objek string dan biarkan pipeline mengeluarkannya:
Tentu saja, Anda memberikan sedikit fleksibilitas ketika tidak menggunakan metode Write- *.
sumber
echo adalah alias untuk Write-Output meskipun terlihat sama dengan Write-Host .
Bukan Apa perbedaan antara echo dan Write-Host di PowerShell? .
gema adalah alias untuk Write-Output, yang menulis ke aliran output Sukses. Ini memungkinkan output diproses melalui jalur pipa atau dialihkan ke file. Write-Host menulis langsung ke konsol, sehingga output tidak dapat diarahkan / diproses lebih jauh.
sumber
Write-host berfungsi dengan baik.
sumber
Saya tidak tahu apakah itu bijaksana untuk melakukannya, tetapi Anda bisa menulis
Dan itu akan menghasilkan:
sumber
"filesizecounter: $filesizecounter"
bahkan lebih pendek.PowerShell memiliki alias untuk beberapa perintah umum seperti
echo
. Ketik yang berikut ini di PowerShell:untuk mendapat respons:
Bahkan Get-Alias memiliki alias
gal -> Get-Alias
. Anda dapat menulisgal echo
untuk mendapatkan alias untukecho
.Alias lain tercantum di sini: https://docs.microsoft.com/en-us/powershell/scripting/learn/using-familiar-command-names?view=powershell-6
cat dir mount rm cd echo move rmdir chdir erase popd sleep clear h ps sort cls history pushd tee copy kill pwd type del lp r write diff ls ren
sumber
Coba
Get-Content .\yourScript.PS1
dan Anda akan melihat konten skrip Anda.Anda juga dapat memasukkan baris ini dalam kode skrip Anda:
....
sumber
Juga harus disebutkan, bahwa Set-PSDebug mirip dengan
echo on
perintah batch old-school :Perintah ini akan menghasilkan menampilkan setiap baris skrip pelaksana:
sumber