Betulkan kekunci fungsi tidak berfungsi dalam Windows 10
Kekunci fungsi Fn memberi anda cara yang lebih cepat dan mudah untuk mengawal beberapa ciri perkakasan.
Bagaimana jika PC anda boleh mengendalikan tugas biasa untuk anda? Dengan Windows PowerShell, ia boleh. Begini cara menggunakan PowerShell untuk mengautomasikan tugasan harian yang berulang-ulang yang tiada siapa mahu lakukan berulang kali.
Jadual Kandungan
Microsoft PowerShell ialah utiliti baris perintah dan bahasa skrip yang merupakan alat yang berkuasa untuk pentadbir mengautomasikan pelbagai tugas untuk komputer dan rangkaian. PowerShell mengandungi komponen Command Prompt dan dibina pada rangka kerja .NET. Jika anda membaca tentang WebTech360, anda harus tahu bahawa PowerShell ialah alat pilihan untuk pentadbir IT mengurus rangkaian yang besar.
Mempelajari cara menggunakan PowerShell akan memudahkan banyak tugas harian yang membosankan. Anda juga boleh membuat perubahan seluruh sistem melalui rangkaian tanpa perlu mengkonfigurasi setiap pelayan secara individu. PowerShell menjadi bahagian penting dalam menjalankan persekitaran awan hibrid .
PowerShell mempunyai banyak kegunaan berbeza untuk membantu anda bekerja dengan lebih cekap dan memastikan rangkaian anda berjalan dengan cekap. Kegunaan paling asas termasuk: menjadualkan kemas kini harian pada sistem, menjana laporan tentang proses semasa, perkhidmatan berkala dan banyak lagi. Walaupun banyak tugas ini boleh dilakukan melalui GUI, tujuan PowerShell adalah untuk melakukannya dengan lebih pantas.
Jika anda mempunyai tugas penyelenggaraan rutin yang mengambil masa beberapa minit untuk disediakan, anda boleh menskrip fungsi yang sama ke dalam satu arahan, bernama PowerShell. Kemudian, pada kali seterusnya anda membuka skrip itu, ia akan berjalan di latar belakang. Menguasai logik skrip PowerShell, memahami cara objek, var (pembolehubah) berfungsi dan menggunakannya secara bijak merentasi rangkaian anda akan membuatkan anda tertanya-tanya mengapa anda tidak menggunakan PowerShell lebih awal.
Tutorial ini akan merangkumi asas PowerShell, yang akan membantu mereka yang baru dalam IT, terutamanya jika anda biasa dengan Prompt Perintah Windows. Ia akan merangkumi cara menggunakan alat dan arahan asas, cara bekerja dengan fail dan folder, memahami objek, menggunakan pembolehubah dan mengurus pelayan jauh.
Selepas keluaran Windows NT, CMD.EXE menjadi utiliti baris arahan untuk Windows. Walaupun CMD.EXE mewarisi beberapa elemen daripada pendahulunya DOS (COMMAN.COM), ia masih berdasarkan bahasa skrip yang agak "primitif": menggunakan fail Windows Command (.CMD dan .BAT). Penambahan Windows Scripting Host dan bahasa VBScript dan JScript telah meningkatkan keupayaan skrip utiliti tersebut.
Teknologi ini adalah gabungan yang agak seimbang antara utiliti baris arahan dan persekitaran skrip lanjutan. Kebimbangan sebenar bukanlah berapa banyak fail CMD.EXE, .CMD, dan Windows Scripting Host boleh dimanipulasi dengannya. Aduan dan kebimbangan utama ialah menyelesaikan beberapa tugas yang kelihatan mudah.
Menggunakan "rangka" alat baris perintah dan skrip, mana-mana skrip yang sederhana komprehensif memerlukan gabungan perintah kelompok, Windows Scripting Host dan boleh laku kendiri. Setiap skrip menggunakan konvensyen yang berbeza untuk pelaksanaan dan permintaan, menghurai dan mengembalikan data.
Sokongan pembolehubah yang lemah dalam CMD.EXE, antara muka yang tidak konsisten dan akses terhad kepada tetapan Windows, digabungkan dengan kelemahan lain, menjadikan skrip baris arahan sukar untuk dilaksanakan dan digunakan. Apakah 'kelemahan lain' ini, anda mungkin bertanya? Ia adalah teks. Dalam teknologi ini, semuanya adalah teks. Output arahan atau skrip ialah teks dan mesti dihuraikan dan diformat semula untuk bertindak sebagai input untuk arahan seterusnya. Ini adalah titik permulaan asas yang PowerShell ambil daripada semua cengkerang tradisional.
Tiga konsep yang diperkenalkan dalam bahagian ini hanyalah asas untuk memahami konsep utama yang membentuk asas PowerShell. Anda perlu meluangkan lebih banyak masa untuk mempelajari dan menguasai konsep yang lebih maju semasa anda mendekati arahan PowerShell.
PowerShell dipasang secara lalai dalam Windows 10, Windows 7, Windows Server 2008 R2 dan versi Windows yang lebih baharu. Versi baharu PowerShell menambah ciri baharu dan "cmdlet" (istilah Microsoft untuk arahan PowerShell - disebut "command-lets") dan dipasang dengan versi Windows Management Framework (WMF) yang sepadan.
Pada masa ini, WMF 5.1 ialah versi yang disyorkan terkini. Dalam sesetengah kes, beberapa ciri baharu bergantung pada sistem pengendalian sebagai tambahan kepada versi WMF. Contohnya, Windows 8 dan Windows Server 2012 menyokong cmdlet Test-NetConnection, yang membolehkan anda menguji kesambungan ke port TCP/IP tertentu , tetapi cmdlet ini tidak tersedia dalam Windows 7 walaupun semasa menjalankan versi WMF terkini.
Pada kebanyakan sistem Windows, pengguna akan mempunyai dua persekitaran PowerShell yang tersedia untuk mereka, konsol PowerShell dan PowerShell ISE (Persekitaran Skrip Bersepadu). Konsol PowerShell kelihatan seperti baris arahan tradisional, tetapi dengan fungsi penuh PowerShell di belakangnya. Nama pembolehubah, gelung, autolengkap perintah dan paip semuanya tersedia daripada konsol PowerShell.
Untuk penggunaan yang lebih maju (seperti skrip), PowerShell ISE menyediakan autolengkap perintah, penyerlahan kod dan pelengkapan kod Intellisense Microsoft untuk membantu anda mencipta dan menguji kod PowerShell. PowerShell ISE juga membolehkan anda bekerja dengan berbilang skrip PowerShell pada masa yang sama menggunakan navigasi tab.
Asas perintah PowerShell ialah cmdlet. Microsoft mengambil beberapa strategi reka bentuk semasa mencipta cmdlet dalam PowerShell.
Pertama ialah keupayaan untuk membuat kesimpulan nama cmdlet dengan mudah, atau sekurang-kurangnya menjadikannya lebih mudah ditemui. Perintah atau cmdlet PowerShell juga direka bentuk agar lebih mudah digunakan, dengan sintaks piawai, menjadikannya lebih mudah untuk mencipta skrip daripada antara muka baris arahan.
cmdlet menggunakan format Kata Kerja-Kata Nama, seperti dalam Get-Service, Stop-Service, atau Import-Csv. Bahagian kata kerja nama cmdlet menunjukkan tindakan yang dilakukan pada kata nama. Biasanya, cmdlet yang digunakan untuk mendapatkan maklumat akan mempunyai kata kerja Get dalam nama mereka, seperti Get-Process atau Get-Content . Perintah yang digunakan untuk mengubah suai sesuatu biasanya bermula dengan kata kerja Set , dan arahan yang digunakan untuk menambah entiti baharu pada sesuatu biasanya bermula dengan Tambah atau Baharu .
Kedua, parameter yang biasa digunakan dalam PowerShell juga diberi nama piawai. Sebagai contoh, parameter -ComputerName membenarkan cmdlet dilaksanakan pada satu atau lebih komputer jauh. -Tauliah digunakan untuk menyediakan objek pengesahan, yang mengandungi kelayakan pengguna, untuk menjalankan arahan sebagai pengguna tertentu.
Anda boleh menggunakan alias untuk kedua-dua cmdlet dan parameter untuk menyimpan ketukan kekunci dan memendekkan panjang keseluruhan perintah (berguna apabila merantai berbilang arahan bersama-sama). Walaupun alias ini tidak selalu menggunakan konvensyen penamaan standard, ia masih mencerminkan utiliti baris perintah tradisional.
Dalam PowerShell, alias seperti DIR, CD, DEL dan CLS masing-masing sepadan dengan Get-ChildItem, Set-Location, Remove-Item dan Clear-Host cmdlet. Alias parameter boleh berfungsi dalam dua cara: mereka boleh menggunakan alias yang dipratentukan yang disediakan oleh cmdlet, atau mereka boleh dialiaskan dengan memasukkan aksara yang mencukupi untuk mencipta padanan unik antara parameter yang disokong cmdlet.
Kebanyakan pentadbir sistem perlu memanipulasi fail dan folder semasa menjalankan kerja mereka, sama ada ia mengalihkan folder ke lokasi lain pada pelayan, mengarkibkan fail log atau mencari fail besar. Dalam kes di mana operasi yang sama diulang pada banyak fail, menggunakan PowerShell untuk mengautomasikannya akan menjadi penyelesaian penjimatan masa yang berkesan.
Untuk mencari fail dan folder, salah satu alat baris arahan pertama yang akan dipelajari oleh pentadbir pada zaman pengkomputeran dahulu ialah arahan dir. Dir akan menyenaraikan fail dan folder yang terkandung dalam direktori yang ditentukan.
PowerShell mempunyai arahan serupa dalam bentuk Get-ChildItem Cmdlet . Get-ChildItem membolehkan anda membina senarai fail dalam direktori dengan cepat dengan cara yang anda boleh memanipulasi fail melalui arahan paip atau menetapkan output kepada pembolehubah.
Get-ChildItem boleh digunakan hanya dengan menyediakan laluan, sama ada melalui saluran paip, menggunakan parameter -Path atau terus selepas nama cmdlet. Untuk mengubah suai respons yang dikembalikan oleh Get-ChildItem, adalah perlu untuk mempertimbangkan beberapa parameter yang disediakan oleh cmdlet.
Parameter -Filter ialah satu cara anda boleh mencari fail. Secara lalai, Get-ChildItem hanya mengembalikan anak langsung direktori sasaran. Fungsi ini boleh dilanjutkan dengan menggunakan parameter -Recurse , yang secara rekursif mencari direktori yang terkandung dalam direktori semasa.
Dalam PowerShell 4.0 Get-ChildItem menambahkan keupayaan untuk mengehadkan hasil kepada fail atau direktori menggunakan suis –Fail atau –Direktori . Versi PowerShell sebelum ini terpaksa menyerahkan hasilnya kepada Where-Object, menapis pada sifat PSIsContainer untuk membuat penentuan ini. Contoh kedua-dua teknik yang digunakan untuk mengembalikan direktori yang terkandung dalam C:Users ditunjukkan di sini:
Get-ChildItem C:Users -Directory Get-ChildItem C:Users | Where-Object {$_.PSIsContainer –eq $true}
Untuk mengesan fail tersembunyi atau sistem, -Force mesti digunakan . Get-ChildItem dalam PowerShell 4.0 dan yang lebih baru juga boleh digunakan untuk mengembalikan fail tersembunyi, baca sahaja atau sistem masing-masing menggunakan -Hidden, -ReadOnly , dan –System . Fungsi yang sama boleh dicapai dalam versi sebelumnya dengan menapis sifat Mod menggunakan Where-Object:
Get-ChildItem C:Users | Where-Object {$_.Mode -like '*R*'}
Semak sama ada fail wujud
Biasanya apabila bekerja dengan fail, kita hanya perlu tahu sama ada fail itu wujud atau sama ada laluan direktori itu sah. PowerShell menyediakan cmdlet untuk melakukan ini dalam bentuk Test-Path, yang mengembalikan nilai benar atau salah.
Laluan Ujian digunakan sebagai langkah berjaga-jaga sebelum cuba menyalin atau memadam fail tertentu.
Salin, alih dan padam fail
Copy-Item: Menyalin satu atau lebih fail atau direktori dari lokasi, yang ditentukan oleh parameter -Path, ke lokasi yang ditentukan oleh pilihan -Destination.
Move-Item: Alihkan fail atau folder.
Apabila struktur direktori sedang disalin atau dialihkan, -Recurse harus digunakan untuk membolehkan cmdlet melakukan tindakan pada direktori dan kandungannya. Dalam sesetengah kes, -Force juga diperlukan , seperti apabila fail baca sahaja ditimpa oleh operasi salinan.
Buang-Item: Padam fail, folder.
Suis -Force harus digunakan apabila menemui fail baca sahaja dan -Recurse harus digunakan apabila memadam direktori dan kandungannya.
Menggunakan PowerShell -WhatIf dan -Confirm
Sebelum melakukan pemadaman besar-besaran yang serius, gunakan -WhatIf . -WhatIf membolehkan anda melihat perkara yang akan berlaku jika anda menjalankan skrip atau arahan, dan sama ada skrip atau perintah itu akan mempunyai sebarang potensi kesan negatif dengan memadamkan data perniagaan yang penting. Perlu juga diperhatikan bahawa -WhatIf tidak terhad kepada operasi fail, ia digunakan secara meluas dalam PowerShell.
Untuk skrip yang anda ingin jalankan secara manual atau lebih teruk, mempunyai perintah bergantung yang dijalankan secara manual, pertimbangkan untuk menggunakan -Confirm . Ini membolehkan anda memerlukan interaksi pengguna sebelum operasi benar-benar berlaku.
Skrip PowerShell = Fail Kelompok pada Steroid
PowerShell sendiri ditulis dalam bahasa .NET dan sangat berasaskan Rangka Kerja .NET. Oleh itu, PowerShell direka sebagai shell berorientasikan objek dan bahasa skrip. Segala-galanya dalam PowerShell dianggap sebagai objek dengan keupayaan penuh Rangka Kerja .NET. Perintah mendedahkan koleksi objek yang boleh digunakan menggunakan sifat dan kaedah jenis objek tersebut. Apabila anda ingin menyalurkan output satu perintah kepada yang lain, PowerShell sebenarnya meneruskan objek, bukan hanya output teks perintah pertama. Ini memberikan arahan seterusnya akses penuh kepada semua sifat dan kaedah objek dalam saluran paip.
Merawat segala-galanya sebagai objek dan dapat menerima objek antara arahan adalah perubahan besar dalam teori utiliti baris arahan. Walaupun begitu, PowerShell masih berfungsi seperti cangkerang tradisional. Perintah, skrip dan boleh laku boleh ditaip dan dijalankan dari baris arahan, dan hasilnya dipaparkan sebagai teks. Fail Windows .CMD dan .BAT, VBScripts, JScripts dan executable yang dijalankan di dalam CMD.EXE semuanya masih berjalan dalam PowerShell. Walau bagaimanapun, kerana mereka tidak berorientasikan objek, mereka tidak mempunyai akses penuh kepada objek yang dicipta dan digunakan dalam PowerShell. Skrip dan boleh laku warisan ini masih akan menganggap segala-galanya sebagai teks, tetapi anda boleh menggabungkan PowerShell dengan beberapa teknologi lain. Ini amat penting jika anda ingin mula menggunakan PowerShell dengan koleksi skrip sedia ada yang anda tidak boleh tukar sekaligus.
Cmdlet boleh menerima parameter untuk mengubah tingkah laku mereka. Apabila menjalankan Cmdlet atau fungsi, anda boleh memberikan nilai parameter untuk menentukan apa, bila, di mana, dan cara setiap arahan PowerShell dijalankan.
Sebagai contoh, Get-Process akan mendapatkan semula dan menyenaraikan semua proses yang sedang berjalan dalam sistem pengendalian anda:
Tetapi bagaimana jika anda hanya mahu mendapatkan proses tertentu? Anda boleh melakukannya menggunakan parameter. Sebagai contoh, untuk mendapatkan semua proses Slack, anda boleh menggunakan parameter Nama dengan Get-Process Cmdlet:
Get-Process -Name Slack
Kemudian anda hanya akan melihat proses bernama "slack":
Petua : Sesetengah parameter adalah "kedudukan" bermakna nama mereka adalah pilihan. Dalam kes ini, Get-Process -Name Slack dan Get-Process Slack kedua-duanya melakukan tugas yang sama.
Setiap Cmdlet akan menerima jenis parameter yang berbeza. Gunakan arahan Dapatkan-Bantuan untuk melihat parameter Cmdlet yang diterima dalam bahagian SYNTAX.
Get-Help Get-Process
Anda akan melihat senarai semua cara yang mungkin anda boleh menjalankan Cmdlet yang diberikan:
Dalam kes ini, Get-Process Cmdlet menerima parameter seperti Name, Id, ComputerName, Module, FileVersionInfo dan parameter biasa yang lain. Simbol di sini bermaksud:
Simbol |
Nama |
Maknanya |
---|---|---|
Drum |
Parameter tidak menerima input |
|
- |
Tanda sempang |
Nyatakan nama parameter |
<> |
kurungan kerinting |
Pemegang tempat untuk teks |
[] |
Tanda kurung |
Parameter boleh menerima satu atau lebih nilai. |
{} |
kurungan kerinting |
Parameter menerima set nilai. |
Parameter menerima set nilai yang akan menunjukkan jenis data yang mereka perlukan, seperti rentetan, integer, boolean atau DateTime. Sebagai contoh, arahan berikut:
Get-Process [[-Name] ]
... bermakna bahawa parameter Nama menerima satu atau lebih nilai rentetan, manakala arahan ini:
Get-Process -Id
... bermakna parameter Id menerima satu atau lebih nilai integer.
Contoh Get-Process sebelumnya menggunakan parameter Name untuk mengecilkan hasil. Walau bagaimanapun, jika anda ingin mengecilkannya kepada proses yang lebih khusus, anda boleh menggunakan parameter ID , yang memerlukan integer seperti yang dinyatakan dalam sintaksnya.
Get-Process -Id 3016
Kemudian anda akan melihat hanya satu proses dalam senarai:
PowerShell memproses semua data sebagai objek. Untuk membina skrip, objek ini dijalankan melalui satu siri Cmdlet atau fungsi yang disambungkan menggunakan simbol paip (|). Memilih Cmdlet yang betul dan menyambungkannya dalam urutan logik menggunakan saluran paip adalah penting untuk skrip yang cekap.
Katakan anda mencipta skrip untuk mengisih dan memaparkan 5 fail yang menggunakan paling banyak ruang dalam direktori. Terdapat cara yang lebih berkuasa untuk menulis skrip pengisihan fail, tetapi yang mudah ini mudah difahami:
Untuk melakukan ini dalam PowerShell, gunakan saluran paip yang kelihatan seperti ini:
Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
Memandangkan kami mempunyai saluran paip yang berfungsi, anda boleh menyimpannya sebagai fail skrip PS1 supaya anda tidak perlu mengimportnya setiap kali anda menggunakannya.
Cara paling mudah untuk mencipta fail PS1 ialah menampal skrip anda ke Notepad dan menyimpan fail tersebut dengan sambungan .ps1.
Sebaik sahaja anda telah mencipta fail PS1, anda boleh menggunakannya dalam PowerShell dengan menjalankan ./ScriptName.ps1 :
Petua : Jika anda mendapat ralat kebenaran, penyelesaian terpantas ialah menjalankan PowerShell dengan hak pentadbir semasa menjalankan skrip anda.
tahniah! Anda kini boleh membuat skrip PowerShell PS1.
Membaca dan memahami kehebatan teknologi baharu adalah satu perkara, tetapi sebenarnya menggunakannya adalah perkara lain! Dalam artikel yang lain, kami akan membangunkan skrip PowerShell untuk menunjukkan keupayaannya dan cara menggunakannya.
DIR ialah salah satu arahan yang paling biasa dalam CMD.EXE . Perintah ini memaparkan semua fail dan subdirektori yang terkandung dalam direktori induk (seperti yang ditunjukkan dalam Rajah 1). Bersama-sama dengan nama setiap objek, maklumat yang diberikan termasuk tarikh dan masa kemas kini terakhir dan saiz setiap fail. DIR juga memaparkan saiz gabungan semua fail dalam direktori, serta jumlah bilangan fail dan subdirektori.
Rajah 1
Menjalankan DIR dalam PowerShell juga menghasilkan penyenaraian direktori seperti Rajah 2, tetapi dengan cara yang sedikit berbeza. PowerShell tidak mempunyai arahan DIR, sebaliknya mempunyai Get-ChildItem, yang menjalankan fungsi yang sama. Dalam PowerShell, DIR ialah alias untuk Get-ChildItem. Saya tidak berniat untuk menggunakan alias dalam artikel ini. Anda boleh menganggap DIR dalam PowerShell sebagai singkatan untuk Get-ChildItem.
DIR dalam PowerShell menyediakan banyak maklumat yang sama seperti yang dinyatakan di atas: senarai fail dan folder, tarikh dan masa terakhir ia diubah suai dan saiz setiap fail. Walau bagaimanapun, ia tidak mempunyai maklumat ringkasan yang DIR dalam CMD.EXE sediakan: jumlah saiz semua fail dalam folder, jumlah bilangan fail dan jumlah bilangan subfolder.
Rajah 2
Untuk contoh senario, anda perlu mencipta skrip PowerShell yang menyerupai arahan CMD.EXE DIR. Di bawah saya akan menerangkan bahagian yang paling penting dalam skrip.
DIR.PS1: Tajuk
Skrip PowerShell terdiri daripada arahan PowerShell dalam fail teks biasa dengan sambungan .PS1. Daripada DIR, anda akan menggunakan fail teks yang dipanggil DIR.PS1.
Untuk menjalankan skrip, taip perintah berikut dalam skrin PowerShell:
.DIR.PS1 X:Folder
Di mana X ialah huruf partition pemacu (seperti C, D, E) dan Folder ialah nama folder.
Jika anda ingin mengetahui beberapa maklumat tentang partition pemacu, anda perlu menggunakan Instrumen Pengurusan Windows (WMI). Butiran WMI berada di luar skop artikel ini, jadi kami tidak akan membincangkannya di sini. Tetapi kod PowerShell di bawah cukup mudah untuk difahami tanpa menggunakan WMI. Anda boleh mencipta pembolehubah "$filter" untuk digunakan dengan arahan Get-WmiObject. Penapis ini memberitahu arahan Get-WmiObject bahawa anda hanya mahukan maklumat tentang pemacu tertentu. Keputusan arahan Get-WmiObject disimpan dalam pembolehubah yang dipanggil $volInfo. Ingat, dalam PowerShell semuanya adalah objek; $volInfo kini menjadi objek yang dikembalikan oleh Get-WmiObject.
$filter = "DeviceID = '" + $drive + ":'"
$volInfo = Get-WmiObject -Class Win32_LogicalDisk -Filter $filter
Kini anda mempunyai akses kepada semua objek dan kaedah yang dikaitkan dengan objek tersebut. Nombor siri volum boleh diakses melalui sifat VolumeSerialNumber. Nombor yang dikembalikan ialah rentetan 8 aksara. Tetapi selalunya anda ingin memformatnya sebagai empat nombor, dipisahkan dengan tanda sempang. boleh dilakukan sama seperti dalam baris berikut. Tanda sempang pada penghujung baris pertama ialah aksara sambungan baris dalam PowerShell. Ia pada asasnya memberitahu PowerShell bahawa baris itu tidak putus dan ia termasuk baris seterusnya. Pemisahan baris tidak diperlukan semasa menulis kod, tetapi untuk mengurangkan lebar dan menjadikan kod lebih mudah dibaca, anda harus berbuat demikian.
$serial = $volInfo.VolumeSerialNumber.SubString(0, 4) + "-" + `
$volInfo.VolumeSerialNumber.SubString(4, 4)
Sekarang anda mempunyai objek $volInfo, anda boleh menulis maklumat pengepala DIR pada skrin. Jika pemacu tidak mempunyai nama, teks yang ditulis pada skrin akan berbeza sedikit berbanding jika pemacu mempunyai nama. Penyataan If-Else mudah digunakan untuk menyemak sama ada sifat VolumeName ialah rentetan kosong. Pernyataan Write-Host digunakan untuk menulis setiap baris teks ke skrin.
If ($volInfo.VolumeName -eq "") { Write-Host (" Volume in drive " + $drive + " has no label") } Else { Write-Host (" Volume in drive " + $drive + " is " + $volInfo.VolumeName) } Write-Host (" Volume Serial Number is " + $serial) Write-Host ("`n Directory of " + $args[0] + "`n")
Aksara “ `n ” pada permulaan dan akhir arahan Write-Host digunakan untuk memasukkan baris baharu sebelum dan selepas teks. Perintah Write-Host menambah baris baharu pada penghujung setiap baris. Jadi kesan “ `n ” ialah mencipta baris kosong sebelum dan selepas teks.
Adakah anda perasan "-eq" dalam arahan If? Ia adalah pengendali perbandingan kesaksamaan. Jadual di bawah menunjukkan kepada anda semua pengendali perbandingan:
-eq, -ieq | Bandingkan mengikut |
-ne, -ine | Perbandingan tidak sama |
-gt, -igt | Bandingkan lebih besar daripada |
-ge, -ige | Bandingkan lebih besar daripada atau sama dengan |
-lt, -ilt | Bandingkan lebih kecil daripada |
-le, -ile | Bandingkan kurang daripada atau sama dengan |
Aksara -i sebelum pengendali perbandingan menunjukkan bahawa pengendali tidak peka huruf besar-kecil.
Rajah 3: Data output skrip yang anda miliki sekarang
DIR.PS1: Senarai fail/folder
Sekarang, anda sudah bersedia untuk memaparkan kandungan dan sifat folder ini. Perkara pertama yang perlu dilakukan ialah memanggil arahan PowerShell Get-ChildItem untuk mendapatkan koleksi fail dan menghantarnya kepada skrip sebagai parameter. Perintah Get-ChildItem akan mendapat koleksi objek fail dan folder, bukan sahaja nama mereka, tetapi juga akan menyalurkan objek ini terus ke dalam perintah Sort-Object untuk mengisihnya. Secara lalai, arahan Sort-Object akan mengisih objek berdasarkan sifat Name. Jadi anda tidak perlu menentukan sebarang parameter lain. Koleksi objek yang diisih kemudiannya akan disimpan dalam pembolehubah bernama $items.
$items = Get-ChildItem $args[0] | Sort-Object
Sebaik sahaja anda mempunyai koleksi objek fail dan folder, anda perlu mengulanginya dan memaparkan sifat yang sesuai. Perintah untuk ini ialah ForEach. Untuk setiap fail atau folder, sifat yang dipaparkan ialah tarikh dan masa terakhir diubah suai, nama, panjang atau saiz fail. Rentetan yang kelihatan aneh di dalam kurungan ialah kod format rentetan .NET. Ia digunakan untuk menjajarkan medan kiri/kanan dan memformat tarikh, masa dan nombor. Memahami kod format rentetan ini tidak begitu penting, kerana ia tidak penting untuk sifat skrip ini.
Pernyataan If ialah tempat anda menentukan sama ada objek ialah direktori atau tidak. Jika aksara pertama atribut Mod ialah "d", objek itu ialah direktori. Anda perlu menyemak semula kerana kod untuk direktori selalunya berbeza daripada kod untuk fail.
Perhatikan baris $totalDirs++ di dalam pernyataan If. Ini adalah kaunter yang bertanggungjawab untuk menjejaki bilangan direktori. Begitu juga, terdapat pembolehubah $totalFiles yang digunakan untuk menjejaki jumlah saiz semua fail. Nilai ini sentiasa dikira semasa pelaksanaan. Tetapi ia hanya dipaparkan apabila proses penyenaraian fail selesai.
ForEach ($i In $items)
{
$date = "{0, -20:MM/dd/yyyy hh:mm tt}" -f $i.LastWriteTime
$file = $i.Name
If ($i.Mode.SubString(0, 1) -eq "d")
{
$totalDirs++
$list = $date + " {0, -15}" -f "
" + " " + $file
}
Else
{
$totalFiles++
$size = "{0, 18:N0}" -f $i.Length
$list = $date + $size + " " + $file
}
$totalSize += $i.Length
Write-Host $list
}
Rajah 4: Memaparkan data output skrip yang dikemas kini.
DIR.PS1: Pengaki
Satu-satunya perkara yang perlu dilakukan ialah menulis pada skrin jumlah bilangan fail, direktori, jumlah saiz semua fail dan ruang kosong pada partition pemacu ini. Untuk melakukan ini, anda perlu menggunakan pembolehubah pembilang ($totalFiles, $totalDirs, $totalSize) yang dibuat dalam bahagian sebelumnya. Anda boleh mengetahui jumlah ruang kosong daripada pembolehubah $volInfo yang dibuat pada permulaan skrip.
Write-Host ("{0, 16:N0}" -f $totalFiles + " File(s)" + `
"{0, 15:N0}" -f $totalSize + " bytes")
Write-Host ("{0, 16:N0}" -f $totalDirs + " Dir(s)" + `
"{0, 16:N0}" -f $volInfo.FreeSpace + " bytes free`n")
Rajah 5: Memaparkan data keluaran lengkap skrip.
Ramalan dan penambahbaikan boleh
Walaupun skrip yang anda cipta menghasilkan output yang hampir sama dengan arahan CMD.EXE DIR, terdapat beberapa kaveat yang perlu anda ketahui dan beberapa peningkatan yang boleh dibuat.
Anda boleh menggunakan PowerShell untuk mengautomasikan hampir semua perkara, seperti menamakan semula kumpulan fail untuk konsisten atau melancarkan aplikasi secara automatik. Mari tulis beberapa skrip Windows PowerShell mudah untuk melihat cara ia berfungsi.
Nota : Jika anda menghadapi ralat semasa melaksanakan skrip berkenaan dasar pelaksanaan, anda mungkin perlu membenarkan skrip untuk dilaksanakan buat sementara waktu dengan menjalankan "Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass"
Namakan semula kumpulan fail dalam folder
Anda boleh menggunakan PowerShell untuk menyalin, mengalih dan memadam fail pada PC anda. Anda juga boleh menamakan semula fail jenis fail tertentu secara pukal. Sebagai contoh, berikut ialah cara anda boleh menamakan semula berbilang fail teks dengan menggantikan awalan "oldco" dengan "newco" dalam nama failnya:
Get-ChildItem -Path "C:\CompanyFiles" -Filter "*.txt" | Rename-Item -NewName {$_.Name -replace "oldco","newco"}
Dalam skrip di atas, ".txt" ialah penapis sambungan fail. Anda boleh mengubah suai dan menetapkannya kepada .jpg, .docx, dll untuk mencari jenis fail yang berbeza.
Aplikasi pelancaran automatik
Jika anda membuka set aplikasi yang sama setiap hari, anda boleh menulis skrip PowerShell untuk melancarkannya dengan satu klik:
#Open multiple apps with a single click
Start-Process "notepad.exe"
Start-Process "calc.exe"
Start-Process "Chrome.exe"
Start-Process "slack.exe"
Tampalkan skrip ke dalam fail Notepad dan simpan sebagai LaunchFavoriteApps.ps1. Kemudian, hanya klik dua kali pada fail untuk melancarkan semua aplikasi yang disenaraikan dalam skrip.
Salin fail penting ke lokasi sandaran
Anda boleh membuat sandaran fail penting secara berkala ke lokasi sandaran menggunakan skrip berikut. Pastikan anda menukar laluan sumber dan destinasi seperti yang diperlukan:
#Copy MyFiles folder contents to MyFilesBackup in D:\
Copy-Item -Path "C:\Documents\MyFiles" -Destination "D:\MyFilesBackup" -Recurse
Memandangkan banyak jenis fail dimuat turun setiap hari, folder Muat Turun boleh menjadi berselerak dengan cepat dengan pelbagai jenis fail berselerak di sekeliling. Untuk membetulkannya, kami boleh menulis skrip PowerShell yang mengisih fail yang dimuat turun ke dalam folder mengikut jenis fail pada penghujung setiap hari.
Buka fail Notepad baharu dan tampal skrip berikut. Pastikan anda menukar laluan folder sumber dalam skrip agar sepadan dengan laluan folder Muat Turun:
# Change the source folder path below
$sourcePath = "E:\Downloads"
# Add file mapping folder names; the Others folder includes all the files that do not match file types in the other categories
$fileTypes = @{
"Documents" = @("*.docx", "*.pdf", "*.txt")
"Images" = @("*.jpg", "*.png", "*.gif")
"Media" = @("*.mp4", "*.mp3", "*.mov")
"Zip" = @("*.zip", "*.rar")
"ISO" = @("*.iso")
"Others" = @("*")
}
# Iterate through each folder type and prepare a destination folder for organizing files
foreach ($folder in $fileTypes.Keys) {
# Create the destination folder path
$destPath = Join-Path -Path $sourcePath -ChildPath $folder
# Check if the destination folder exists, and create it if it doesn't
if (!(Test-Path -Path $destPath)) {
New-Item -ItemType Directory -Path $destPath | Out-Null
}
# Move matching files from the source folder to the destination folder based on file type patterns
foreach ($pattern in $fileTypes[$folder]) {
Get-ChildItem -Path $sourcePath -Filter $pattern -File -ErrorAction SilentlyContinue | ForEach-Object {
try {
Move-Item -Path $_.FullName -Destination $destPath -Force -ErrorAction Stop
Write-Output "Moved: $($_.FullName) to $destPath"
} catch {
Write-Warning "Failed to move file: $($_.FullName). Error: $_"
}
}
}
}
Write-Output "Files organized successfully!"
Untuk menyimpan fail, klik Fail > Simpan Sebagai dan masukkan OrganizeDownloadsFolder.ps1 sebagai nama fail. Kemudian, klik Simpan sebagai Jenis dan pilih Semua Fail . Klik dua kali pada fail OrganizeDownloadsFolder.ps1 untuk menjalankan skrip.
Sudah tentu, menulis skrip adalah satu bahagian daripada proses automasi. Bahagian kedua ialah memastikan skrip boleh dilaksanakan secara automatik untuk melaksanakan tugas. Untuk melakukan ini, kita boleh membuat tugas berjadual untuk menjalankan skrip setiap hari atau mengikut keperluan.
Buka PowerShell, kemudian salin dan tampal skrip berikut dan tekan Enter . Pastikan untuk menggantikan 'J:\OrganizeDownloadsFolder.ps1' dengan laluan fail penuh ke skrip OrganizeDownloadsFolder.ps1 anda .
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File 'J:\OrganizeDownloadsFolder.ps1'"
$trigger = New-ScheduledTaskTrigger -Daily -At "5:00 PM"
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "OrganizeDownloadsFolderDaily"
Setelah selesai, tekan Enter . Skrip akan membuat tugas berjadual dalam Penjadual Tugas untuk menjalankan skrip organisasi fail setiap hari pada jam 5:00 petang. Jika anda lebih suka masa yang berbeza, anda boleh mengubah suainya dalam skrip di atas.
Selain itu, anda boleh menggunakan PowerShell untuk mengautomasikan tugas harian yang lain, seperti skrip pemantauan ruang yang memberi amaran kepada anda apabila anda kehabisan ruang kosong pada pemacu utama anda, kumpulan dokumen PDF yang melindungi kata laluan dan juga menggunakan kertas dinding langsung daripada folder imej anda.
Walaupun PowerShell ialah utiliti dan bahasa skrip yang berkuasa, ia memerlukan sedikit masa untuk memahami dan menggunakannya, terutamanya jika anda tidak biasa dengan persekitaran Rangka Kerja .NET. Saya harap artikel ini dan skrip contoh akan berguna untuk sesiapa sahaja yang ingin memahami PowerShell. Tetapi skrip contoh yang dibuat dalam artikel itu agak mudah. Saya percaya ia boleh dibina dan dibangunkan dengan lebih lengkap untuk menyediakan aplikasi yang lebih kompleks.
Kekunci fungsi Fn memberi anda cara yang lebih cepat dan mudah untuk mengawal beberapa ciri perkakasan.
Penunjuk di luar tempat ini biasanya bermakna penyulitan BitLocker telah dilumpuhkan, kemas kini memerlukan but semula atau peningkatan perisian tegar belum selesai.
Anda boleh menggunakan salah satu daripada 6 kaedah berikut untuk membuka Komputer Properties (atau System Properties) pada Windows 10.
Jika anda mengunci rangkaian Wi-Fi tetamu anda dengan betul, anda boleh berkongsi sambungan Internet anda dengan mana-mana pelawat tanpa berkongsi maklumat lain.
Dalam artikel ini, WebTech360 akan membimbing anda cara mematikan tembok api pada Windows 11.
Apabila anda mula-mula membeli komputer anda, komputer anda boot dalam beberapa saat dan berjalan seperti mimpi. Tetapi keadaan telah berubah dari semasa ke semasa.
Dokumen ini adalah mengenai memadam fail .tmp, bukan cara mengosongkan sejarah Internet atau cache penyemak imbas anda.
Anda boleh mematikan aplikasi latar belakang Windows 11 untuk mengoptimumkan prestasi, menjimatkan bateri dan mengurangkan penggunaan RAM.
Memasang VPN akan membantu memastikan komputer Windows 11 anda lebih selamat.
Windows menawarkan beberapa pilihan kebolehcapaian yang berguna, sesuai untuk menyesuaikan antara muka PC anda, meningkatkan keselesaan, dan juga mengendalikan sesuatu secara bebas tangan sepenuhnya.
Pada Windows 10, Microsoft menyepadukan aplikasi baharu yang dipanggil Tetapan. Aplikasi Tetapan ini ialah aplikasi Metro yang dicipta oleh Microsoft untuk menggantikan aplikasi Panel Kawalan klasik.
Folder besar pada sistem adalah salah satu punca yang memakan banyak ruang sistem. Banyak folder yang anda buat, selepas memadamkannya, akan kembali selepas beberapa ketika. Mungkin itu adalah folder sampah yang anda cuba alih keluar.
Jika pelayan DNS lalai yang disediakan oleh ISP anda kelihatan lambat, tidak selamat atau tidak boleh dipercayai, anda tidak perlu menggunakannya. Begini cara anda boleh menukar tetapan pelayan DNS pada komputer Windows 11 anda.
GodeMode dipanggil Panel Kawalan Induk Windows Pintasan. GodMode (atau God Mode) ialah panel kawalan, membolehkan anda menyediakan dan mengakses segala-galanya pada sistem pengendalian Windows anda.
Untuk menukar kata laluan atau nama WiFi untuk modem TP Link, pengguna perlu log masuk ke alamat untuk talian modem ini. Jadi apakah alamat log masuk modem TP Link?
Kekunci fungsi Fn memberi anda cara yang lebih cepat dan mudah untuk mengawal beberapa ciri perkakasan.
Penunjuk di luar tempat ini biasanya bermakna penyulitan BitLocker telah dilumpuhkan, kemas kini memerlukan but semula atau peningkatan perisian tegar belum selesai.
Anda boleh menggunakan salah satu daripada 6 kaedah berikut untuk membuka Komputer Properties (atau System Properties) pada Windows 10.
Jika anda mengunci rangkaian Wi-Fi tetamu anda dengan betul, anda boleh berkongsi sambungan Internet anda dengan mana-mana pelawat tanpa berkongsi maklumat lain.
Dalam artikel ini, WebTech360 akan membimbing anda cara mematikan tembok api pada Windows 11.
Apabila anda mula-mula membeli komputer anda, komputer anda boot dalam beberapa saat dan berjalan seperti mimpi. Tetapi keadaan telah berubah dari semasa ke semasa.
Dokumen ini adalah mengenai memadam fail .tmp, bukan cara mengosongkan sejarah Internet atau cache penyemak imbas anda.
Anda boleh mematikan aplikasi latar belakang Windows 11 untuk mengoptimumkan prestasi, menjimatkan bateri dan mengurangkan penggunaan RAM.
Memasang VPN akan membantu memastikan komputer Windows 11 anda lebih selamat.
Windows menawarkan beberapa pilihan kebolehcapaian yang berguna, sesuai untuk menyesuaikan antara muka PC anda, meningkatkan keselesaan, dan juga mengendalikan sesuatu secara bebas tangan sepenuhnya.
Pada Windows 10, Microsoft menyepadukan aplikasi baharu yang dipanggil Tetapan. Aplikasi Tetapan ini ialah aplikasi Metro yang dicipta oleh Microsoft untuk menggantikan aplikasi Panel Kawalan klasik.
Folder besar pada sistem adalah salah satu punca yang memakan banyak ruang sistem. Banyak folder yang anda buat, selepas memadamkannya, akan kembali selepas beberapa ketika. Mungkin itu adalah folder sampah yang anda cuba alih keluar.
Jika pelayan DNS lalai yang disediakan oleh ISP anda kelihatan lambat, tidak selamat atau tidak boleh dipercayai, anda tidak perlu menggunakannya. Begini cara anda boleh menukar tetapan pelayan DNS pada komputer Windows 11 anda.
GodeMode dipanggil Panel Kawalan Induk Windows Pintasan. GodMode (atau God Mode) ialah panel kawalan, membolehkan anda menyediakan dan mengakses segala-galanya pada sistem pengendalian Windows anda.
Untuk menukar kata laluan atau nama WiFi untuk modem TP Link, pengguna perlu log masuk ke alamat untuk talian modem ini. Jadi apakah alamat log masuk modem TP Link?