Automatisoi toistuvat tehtävät AI:llä luotujen PowerShell-skripttien avulla

Automatisoi toistuvat tehtävät AI:llä luotujen PowerShell-skripttien avulla
Indeksi
  1. PowerShell 101: Tehtävien automaatio Windowsissa
  2. Tekoälyn käyttö mukautettujen PowerShell-skriptien luomisessa
  3. Automatisointi AI-luoduille PowerShell-skripteille Ajastusohjelmalla

Tässä tekstissä käydään läpi, kuinka tekoäly auttaa PowerShell-skripttien luomisessa Windows-tehtävien automatisoimiseksi, säästäen aikaa ja lisäten tehokkuutta.

Olen aina uskonut, että tietokoneiden tulisi toimia meidän hyväksemme, ei toisin päin. Tämä ajatus muuttui, kun huomasin viettäväni lukemattomia tunteja mielettömissä tehtävissä. Tämä kaikki muuttui, kun aloin käyttää tekoälyä (AI) luomaan PowerShell-skriptejä automaattisesti Windows-tehtäviini.

PowerShell 101: Tehtävien automaatio Windowsissa

PowerShell on sekä komentorivipohjainen kuori että skriptikieli, joka on integroitu Windowsiin ja joka mahdollistaa tehokkaat järjestelmänhallinta- ja automaatio-ominaisuudet, kuten Microsoft selittää.

Käytännössä voit luoda skriptejä (itsenäisiä tiedostoja, jotka sisältävät komentoja ja ohjeita, jotka voidaan suorittaa automaattisesti), jotka tekevät kaikkea yksinkertaisista tiedostotoiminnoista monimutkaisiin järjestelmän hallintatehtäviin.

Internetistä löytyy lukuisia valmiita PowerShell-skriptejä, jotka voivat hoitaa yleisiä tehtäviä. Esimerkiksi PowerShell-skriptejä tarjoava arkisto sisältää yli 500 ilmaiseksi saatavaa skriptiä, jotka kattavat kaikkea järjestelmäasetusten hallinnasta tiedostotoimintojen automatisointiin. Voit löytää skriptejä, jotka tarkistavat levytilan, luettelevat asennetut ohjelmat ja jopa järjestävät valokuvat päivämäärän mukaan.

Vaikka valmiit skriptit ovat hyödyllisiä, PowerShellin todellinen voima avautuu, kun luot mukautettuja skriptejä, jotka on räätälöity omien tarpeidesi mukaan, ja siihen tekoäly astuu peliin.

Tekoälyn käyttö mukautettujen PowerShell-skriptien luomisessa

Selitän, kuinka luon PowerShell-skriptejä automatisoimaan tehtäviä, vaikka en itse tunne PowerShellia, käyttäen tekoälyä käytännön esimerkin kautta.

Äskettäin toipuin suuresta datamäärästä käyttäen PhotoRecia vikaantuneesta levystä. Valitettavasti päädyin tuhansien erilaisten tiedostojen kanssa yhteen hakemistoon, ja niiden läpikäyminen oli painajaista. Helpottaakseni asioita halusin automaattisesti lajitella tämän tiedostopinon pääkategorioihin, kuten kuviin, ääniin, asiakirjoihin jne.

Sen sijaan, että olisin viettänyt tunteja PowerShell-synnin opettelussa tai etsinyt täydellistä valmista skriptiä, käännyin ChatGPT:n puoleen ja annoin selkeän kuvauksen siitä, mitä tarvitsin. Tässä on, kuinka ohjasin tekoälyä:

Olen varmistanut, että antamassani ohjeessa mukana olivat seuraavat keskeiset elementit:

  • Mitä tapahtuu tiedostoille, jotka eivät sovi kategorioihini
  • Tarkka tehtävä, jonka halusin suorittaa (tiedostojen järjestäminen tiedostopäätteen mukaan)
  • Erityiset kategoriat ja tiedostotyypit kullekin kategorialle

Tietenkin korostin AI-ohjeessani, että tavoitteeni oli luoda PowerShell-skripti (toisin kuin esimerkiksi Bash-skripti) alussa.

Muuta kuin sekuntien kuluessa tekoäly loi tämän PowerShell-skriptin tehtävien automatisoimista varten:

# Määrittele lähdekansio nykyiseksi hakemistoksi, jossa skripti suoritetaan
$sourceFolder = $PSScriptRoot

# Määrittele kategorikansiot ja niihin liittyvät tiedostopäätteet
$categories = @{
 "Kuvat" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps")
 "Asiakirjat" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi")
 "Ääni" = @(".mp3", ".wav", ".aac", ".flac", ".ogg", ".wma", ".m4a", ".mid", ".midi", ".aiff", ".alac", ".ape", ".opus", ".amr", ".au", ".voc")
 "Video" = @(".mp4", ".avi", ".mov", ".wmv", ".mkv", ".flv", ".webm", ".m4v", ".mpg", ".mpeg", ".3gp", ".3g2", ".ts", ".vob", ".ogv", ".divx", ".asf", ".rm", ".rmvb")
 "Arkistot" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm")
 "Koodi" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua")
 "Suoritettavat" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle")
 "Muut" = @()
}

# Luo kategorikansiot, jos niitä ei ole.

exist
foreach ($category in $categories.Keys) {
$categoryPath = Join-Path -Path $sourceFolder -ChildPath $category
if (-not (Test-Path -Path $categoryPath)) {
New-Item -Path $categoryPath -ItemType Directory | Out-Null
Write-Host "Luotiin kansio: $category"
}
}

# Hanki kaikki tiedostot lähdekansiosta (ei rekursiivisesti)
$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_.Name -ne $MyInvocation.MyCommand.Name }

# Siirrettyjen tiedostojen laskuri
$movedFiles = 0
$totalFiles = $files.Count

Write-Host "Aloitetaan $totalFiles tiedoston järjestäminen..."

# Käsitellään jokainen tiedosto
foreach ($file in $files) {
$extension = $file.Extension.ToLower()
$targetCategory = "Muut"

# Määritetään, mihin kategoriaan tiedosto kuuluu
foreach ($category in $categories.Keys) {
if ($category -eq "Muut") { continue }
if ($categories[$category] -contains $extension) {
$targetCategory = $category
break
}
}

# Siirretään tiedosto sopivaan kategoriaan
$targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory
$targetFile = Join-Path -Path $targetPath -ChildPath $file.Name

# Tarkistetaan, onko kohdetiedosto jo olemassa ja käsitellään sen mukaan
if (Test-Path -Path $targetFile) {
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name)
$newName = "$baseName`_$(Get-Random)$extension"
$targetFile = Join-Path -Path $targetPath -ChildPath $newName
}

Move-Item -Path $file.FullName -Destination $targetFile
$movedFiles++

# Näytetään edistyminen
$percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2)
Write-Progress -Activity "Tiedostojen järjestäminen" -Status "$movedFiles tiedostoa $totalFiles käsitelty ($percentComplete%)" -PercentComplete $percentComplete
}

Write-Host "Tiedostojen järjestäminen valmis! Siirretty $movedFiles tiedostoa kategorioihin."

Kuten näet, koko koodi on hyvin kommentoitu, joten yksittäisten osien toiminta on suhteellisen helppo ymmärtää. Tämä on erinomaista, jos haluat oppia PowerShellia ja tehdä itse manuaalisia muutoksia.

Muokatakseni tätä koodia käyttökelpoiseksi skriptiksi, kopioin koko koodilohkon AI-keskustelusta ja avasin Windowsin Muistion (mikä tahansa tekstieditori toimii hyvin).

Liitettyäni koodin, tallensin tiedoston kuvaavalla nimellä ja .ps1-tiedostopäätteellä (kuten “organize-files.ps1”). Asetin tämän skriptin suoraan kansioon, jossa oli palautetut tiedostoni, ja ajoin sen oikealla napsauttamalla tiedostoa ja valitsemalla Aja PowerShellillä.

Nopeasti tuhannet hajautetut tiedostot järjestettiin siististi oikeisiin kansioihin.

Automatisointi AI-luoduille PowerShell-skripteille Ajastusohjelmalla

Entistä parempi kuin hyödyllinen AI-luotu PowerShell-skripti on sellainen, joka automatisoi Windows-tehtäviä ilman, että sinun täytyy ajatella sitä!

Työskentelen tietokoneellani pitkiä tunteja, ja unohtelen usein pitää taukoja, mikä johtaa silmien rasitukseen ja tuottavuuden heikkenemiseen. Päätin luoda skriptin, joka muistuttaisi minua tekemään taukoja säännöllisin välein. Kuten aiemmin, käännyin AI:n puoleen selkeällä kysymyksellä:

AI tuotti nopeasti tämän silmiä säästävän skriptin:

# Skripti muistuttamaan käyttäjää säännöllisistä tauoista

# Lataa tarvittavat kokoelmat ilmoituksia varten
Add-Type -AssemblyName System.Windows.Forms

# Toiminto taukomuistutuksen näyttämiseksi
function Show-BreakReminder {
 $motivationalMessages = @(
 "Aika 5 minuutin tauolle! Lepää silmiäsi ja venyttele.",
 "Taukotila! Katso jotain 20 jalan päähän 20 sekunnin ajan.",
 "Tauko! Nouse pystyyn ja liikku karan 5 minuuttia.",
 "Silmiesi tarvitsevat lepoa! Ota 5 minuuttia pois näytöltä.",
 "Tuottavuusvinkki: 5 minuutin tauko nyt parantaa keskittymiskykyäsi!"
 )
 
 # Valitse satunnainen viesti
 $randomMessage = $motivationalMessages | Get-Random
 
 # Luo ja määritä ilmoitus
 $notification = New-Object System.Windows.Forms.NotifyIcon
 $notification.Icon = [System.Drawing.SystemIcons]::Information
 $notification.BalloonTipTitle = "Hyvinvointimuistutus"
 $notification.BalloonTipText = $randomMessage

$notification.Visible = $true
 
 # Näytä ilmoitus 10 sekunnin ajan
 $notification.ShowBalloonTip(10000)
 
 # Siivoa viiveen jälkeen
 Start-Sleep -Seconds 12
 $notification.Dispose()

# Näytä alkuperäinen ilmoitus
Show-BreakReminder

Write-Host "Tauko-ilmoitus näytetty. Aseta tämä skripti ajastettavaksi tuntikohtaisesti Tehtäväajastimella."

Tämä skripti oli juuri sitä, mitä tarvitsin, mutta en halunnut muistaa sen ajamista manuaalisesti. Sen sijaan säädin sen toimimaan automaattisesti kerran tunnissa Windowsin Tehtäväajastimen avulla.

Taas kerran tallensin AI:n luoman PowerShell-skriptin .ps1-tiedostona, avasin Tehtäväajastimen Käynnistä-valikosta ja loin uuden perustehtävän päivittäisellä liipaisimella.

Perustehtävän luomisen jälkeen minun piti muokata liipaisinasetuksia tuntikohtaista suorittamista varten. Tehtäväajastin-kirjastossa löysin newly created taskini ja napsautin hiiren oikealla valitakseni Ominaisuudet. Siirryin Liipaisimet-välilehteen ja valitsin Muokkaa. Muokkaa liipaisinta -ikkunassa valitsin Toista tehtävä: -vaihtoehdon ja asetukseni toistovälin 1 tunti. Keston alla valitsin Ikuisesti, ja napsautin sitten OK tallentaakseni asetukset.

Minun piti myös määrittää toiminta asetukset oikein. Ominaisuudet-ikkunassa siirryin Toiminnot-välilehteen ja valitsin Muokkaa. Ohjelma/skripti-kentässä kirjoitin powershell.exe sen sijaan, että olisin käyttänyt suoraa polkua skriptiini. Lisää argumentteja -kenttään kirjoitin -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1", mikä sisältää sekä suoritusasetukset että täydellisen polun skriptiini.

Nämä muutokset tehtyäni napsautin OK tallentaakseni toiminna asetukset ja sitten uudelleen OK Ominaisuudet-ikkunassa vahvistaakseni kaikki muutokset. Tulos oli vaivan arvoinen!

Tämän AI-lähestymistavan kauneus on se, että kun olet asettanut muutamia automatisoituja tehtäviä PowerShell-skripteillä, tietokoneesi alkaa työskennellä puolestasi taustalla, tehden kaikki ne pienet avustavat muistutukset, joiden muistaminen tai ulkoisten hälytyksien asettaminen oli aiemmin tarpeen.

Jos olet kiinnostunut tutkimaan lisää PowerShellin mahdollisuuksia automatisointiprojekteissasi, tutustu oppaaseemme keskeisistä PowerShell-komentoista, jotka jokaisen Windows-käyttäjän tulisi tietää. Nämä komennot muodostavat perustan monimutkaisemmille skripteille ja auttavat sinua ymmärtämään, mitä taustalla tapahtuu AI:n generoimassa automatisoinnissa.

Nyt kun olet lukenut Automatisoi toistuvat tehtävät AI:llä luotujen PowerShell-skripttien avulla loppuun, kutsumme sinut tutustumaan lisää Windows-kategoriaan. Löydät sieltä muita mielenkiintoisia artikkeleita, jotka laajentavat tietojasi ja pitävät sinut ajan tasalla. Älä lopeta lukemista ja löytämistä!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Go up