Automatisera repetitiva uppgifter via AI-genererade PowerShell-skript

Upptäck hur artificiell intelligens (AI) kan effektivisera din arbetsdag genom att automatisera uppgifter med anpassade PowerShell-skript, sparar tid och minskar stress.
Jag har alltid trott att datorer ska arbeta för oss, inte tvärtom. Detta var fram till dess att jag fann mig själv spendera otaliga timmar på meningslösa uppgifter. Det var fram till jag började använda artificiell intelligens (AI) för att enkelt skapa PowerShell-skript för att automatisera mina Windows-uppgifter.
PowerShell 101: Uppgiftsautomatisering för Windows
PowerShell är både en kommandoradsfjärr och ett skriptspråk inbyggt i Windows, som möjliggör kraftfull systemadministration och automatiseringsmöjligheter, som Microsoft förklarar.
I praktiken kan du skapa skript (självständiga filer som innehåller kommandon och instruktioner som kan köras automatiskt) som gör allt från enkla filoperationer till komplexa systemhanteringsuppgifter.
Det finns otaliga färdiga PowerShell-skript online som kan hantera vanliga uppgifter. Till exempel innehåller PowerShell Scripts Repository över 500 gratis skript för uppgifter som sträcker sig från att hantera systeminställningar till att automatisera filoperationer. Du kan hitta skript som kontrollerar diskutrymme, listar installerad programvara, och till och med organiserar foton efter datum.
Men medan färdiga skript är användbara, låses den verkliga kraften i PowerShell upp när du skapar anpassade skript skräddarsydda för dina unika behov, och det är här AI kommer in.
Använda AI för att skapa anpassade PowerShell-skript
Låt mig förklara hur jag skapar PowerShell-skript för att automatisera uppgifter utan att faktiskt känna till PowerShell, med ett praktiskt exempel.
Jag återhämtade nyligen en mängd data med PhotoRec från en defekt enhet. Tyvärr hamnade jag med tusentals olika filer i en enda katalog, och att gå igenom dem var en mardröm. För att göra saker lite enklare ville jag automatiskt sortera denna hög av filer i huvudkategorier, som bilder, ljud, dokument och så vidare.
I stället för att spendera timmar på att lära mig PowerShell-syntax eller leta efter det perfekta färdiga skriptet, vände jag mig till ChatGPT med en tydlig beskrivning av vad jag behövde. Så här formulerade jag min AI-förfrågan:
De viktigaste elementen som jag såg till att inkludera i min förfrågan var:
- Vad som skulle hända med filer som inte matchade mina kategorier
- Den exakta uppgiften jag ville utföra (organisera filer efter filändelse)
- De specifika kategorierna och filtyperna för varje kategori
Naturligtvis framhöll jag i min AI-förfrågan att mitt mål var att skapa ett PowerShell-skript (till skillnad från, låt säga, ett Bash-skript) i början.
Inom sekunder genererade AI detta PowerShell-skript för att automatisera uppgifter åt mig:
# Definiera källmappen som den aktuella katalogen där skriptet körs
$sourceFolder = $PSScriptRoot
# Definiera kategori-mappar och deras associerade filändelser
$categories = @{
"Images" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps")
"Documents" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi")
"Audio" = @(".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")
"Archives" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm")
"Code" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua")
"Executables" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle")
"Other" = @()
}
# Skapa kategori-mappar om de inte finns.
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 "Skapade mapp: $category"
}
}
# Hämta alla filer i källmappen (icke-rekursiv)
$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_.Name -ne $MyInvocation.MyCommand.Name }
# Räknare för flyttade filer
$movedFiles = 0
$totalFiles = $files.Count
Write-Host "Börjar organisera $totalFiles filer..."
# Bearbeta varje fil
foreach ($file in $files) {
$extension = $file.Extension.ToLower()
$targetCategory = "Annat"
# Bestäm vilken kategori filen tillhör
foreach ($category in $categories.Keys) {
if ($category -eq "Annat") { continue }
if ($categories[$category] -contains $extension) {
$targetCategory = $category
break
}
}
# Flytta filen till rätt kategori mapp
$targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory
$targetFile = Join-Path -Path $targetPath -ChildPath $file.Name
# Kontrollera om målfilen redan finns och hantera det
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++
# Visa framsteg
$percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2)
Write-Progress -Activity "Organiserar filer" -Status "$movedFiles av $totalFiles filer behandlade ($percentComplete%)" -PercentComplete $percentComplete
}
Write-Host "Filorganisationen är klar! Flyttade $movedFiles filer till kategorier."Som du kan se är hela koden fint kommenterad, så det är faktiskt möjligt att förstå vad de olika delarna gör med relativ lätthet, vilket är bra om du vill lära dig PowerShell och göra manuella justeringar själv.
För att göra denna kod till ett användbart skript kopierade jag helt enkelt hela kodblocket från AI-chatten och öppnade Windows Anteckningar (även om vilken textredigerare som helst skulle fungera bra).
Efter att ha klistrat in koden sparade jag filen med ett beskrivande namn och .ps1-tillägget (som “organisera-filer.ps1”). Jag lade detta skript direkt i mappen med mina återställda filer och körde det genom att högerklicka på filen och välja Kör med PowerShell.
På nolltid var tusentals spridda filer fint organiserade i lämpliga mappar.
Automatisering av dina AI-genererade PowerShell-skript med Uppgiftsschemaläggaren
Ännu bättre än ett användbart AI-skapat PowerShell-skript är ett som automatiskt utför dina Windows-uppgifter utan att du behöver tänka på det!
Jag arbetar på min dator i långa stunder och glömmer ofta att ta pauser, vilket leder till ögonstress och minskad produktivitet. Jag bestämde mig för att skapa ett skript som skulle påminna mig om att ta pauser från skärmen med jämna mellanrum. Återigen vände jag mig till AI med en tydlig prompt:
AI:n genererade snabbt detta ögonvänliga skript:
# Skript för att påminna användaren om att ta regelbundna skärmpauser
# Ladda nödvändiga assemblyer för meddelanden
Add-Type -AssemblyName System.Windows.Forms
# Funktion för att visa påminnelse om paus
function Show-BreakReminder {
$motivationalMessages = @(
"Dags för en 5-minuters paus! Vila dina ögon och sträck på dig.",
"Skärmpaus! Titta på något 20 fot bort i 20 sekunder.",
"Pausdags! Stå upp och rör på dig i 5 minuter.",
"Dina ögon behöver vila! Ta 5 minuter bort från skärmen.",
"Produktivitetsknep: En 5-minuters paus nu kommer att öka ditt fokus!"
)
# Välj ett slumpmässigt meddelande
$randomMessage = $motivationalMessages | Get-Random
# Skapa och konfigurera meddelandet
$notification = New-Object System.Windows.Forms.NotifyIcon
$notification.Icon = [System.Drawing.SystemIcons]::Information
$notification.BalloonTipTitle = "Välbefinnande Påminnelse"
$notification.BalloonTipText = $randomMessage
$notification.Visible = $true
# Visa meddelande i 10 sekunder
$notification.ShowBalloonTip(10000)
# Rensa upp efter en fördröjning
Start-Sleep -Seconds 12
$notification.Dispose()
}
# Visa ett initialt meddelande
Show-BreakReminder
Write-Host "Meddelande om paus visat. Ställ in det här skriptet att köras varje timme med hjälp av Schemaläggaren." Det här skriptet var precis vad jag behövde, men jag ville inte behöva komma ihåg att köra det manuellt. Istället ställde jag in det att köras automatiskt en gång i timmen med hjälp av Windows Schemaläggaren.
Återigen sparade jag det AI-skapade PowerShell-skriptet som en .ps1-fil, och öppnade Schemaläggaren från Startmenyn och skapade en ny grundläggande uppgift med en dagsutlösare.
Efter att ha skapat den grundläggande uppgiften behövde jag ändra utlösarinställningarna för timvis körning. I Schemaläggarbiblioteket lokalisering jag min nyss skapade uppgift och högerklickade för att välja Egenskaper. Jag navigerade till fliken Utlösare och valde Ändra. I fönstret Ändra utlösare markerade jag alternativet Upprepa uppgift var: och ställde in upprepningsintervallet till 1 timme. Under varaktighet valde jag För alltid, och klickade sedan på OK för att spara dessa inställningar.
Jag behövde också korrekt konfigurera åtgärdsinställningarna. I Egenskapsfönstret navigerade jag till fliken Åtgärder och valde Ändra. För fältet Program/skript angav jag powershell.exe istället för den direkta sökvägen till mitt skript. I fältet för lägg till argument angav jag -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1", vilket inkluderar både exekveringsparametrar och den fullständiga sökvägen till mitt skript.
Efter att ha gjort dessa ändringar klickade jag på OK för att spara åtgärdsinställningarna, och klickade sedan på OK igen i Egenskapsfönstret för att slutföra alla ändringar. Resultatet var värt ansträngningen!
Skönheten med den här AI-ansatsen är att när du väl har ställt in några automatiserade uppgifter via PowerShell-skript, börjar din dator arbeta för dig i bakgrunden, och gör alla de små hjälpsamma påminnelserna som tidigare krävde att du kom ihåg eller ställde in externa påminnelser.
Om du är intresserad av att utforska fler PowerShell-funktioner för dina automatiseringsprojekt, kolla in vår guide till viktiga PowerShell-kommandon som varje Windows-användare bör känna till. Dessa kommandon utgör byggstenarna för mer komplexa skript och hjälper dig att förstå vad som händer under huven på din AI-genererade automatisering.
Allt du behöver veta
How to use AI to write a PowerShell script?
- Snabb och Enkelt Registrering: Skapa ett konto på Workik, antingen med ditt Google-konto eller genom att ange dina uppgifter manuellt.
- Lägg till Projektets Kontext: Specificera vad du behöver hjälp med i din PowerShell-script. Beskriv syftet och eventuella specifika kommandon eller funktioner du vill inkludera.
- Generera PowerShell-skript med AI: Använd AI-verktyget för att få förslag på PowerShell-skript baserat på den information du angav. Du kan ofta justera och finjustera resultaten för att bättre passa dina behov.
- Samarbeta och Utför: Dela dina skript med teammedlemmar för feedback. När du är nöjd kan du köra skripten direkt i PowerShell för att se resultaten. Genom att följa dessa steg kan du effektivt utnyttja AI för att generera PowerShell-skript snabbt och smidigt.
How to automate the PowerShell script?
För att automatisera ett PowerShell-skript kan du följa dessa steg för att skapa ett schema:
- Öppna Task Scheduler:
- - Sök efter 'Task Scheduler' i Windows och öppna programmet.
- Skapa en ny uppgift:
- I åtgärdspanelen till höger, klicka på 'Create Task'.
- Fyll i Allmän information:
- På fliken 'General':
- Ange ett namn och en beskrivning för din uppgift.
- Välj lämpliga säkerhetsalternativ för att bestämma vem som kan köra uppgiften.
- Ställ in en trigger:
- Gå till fliken 'Triggers' och klicka på 'New...'.
- Välj när och hur ofta skriptet ska köras (dagligen, veckovis, etc.).
- Ange åtgärden:
- Navigera till fliken 'Actions' och klicka på 'New...'.
- Välj 'Start a program' och ange sökvägen till PowerShell och ditt skript:
- Program/script:
powershell.exe - Add arguments (optional):
-File 'C:\path\to\your\script.ps1' - Konfigurera villkor och inställningar:
- Gå till flikarna 'Conditions' och 'Settings' för att justera eventuella ytterligare inställningar, såsom att köra bara vid strömförsörjning eller om uppgiften misslyckas.
- Spara uppgiften:
- Klicka på 'OK' för att spara och stänga Task Scheduler. Genom att följa dessa steg kan du enkelt automatisera körningen av ditt PowerShell-skript enligt ett schema.
Can ChatGPT generate PowerShell scripts?
Ja, ChatGPT kan generera PowerShell-skript. Med verktyg som ChatGPT och GitHub Copilot har det blivit mer intuitivt och effektivt att skriva PowerShell-skript. Här är några fördelar med att använda AI-verktyg för skriptprogrammering:
- -
Intuitiv kodning
- : AI kan hjälpa till med syntax och ge exempel på kodsnuttar.
- Effektivisering: Snabbare skrivande och färre syntaxfel tack vare intelligenta förslag.
- Bättre funktionalitet: Genom att föreslå lösningar som kan vara svåra att tänka på själv förbättras skriptens prestanda. I min blogg kommer jag att dela med mig av min resa med att integrera dessa AI-verktyg i min kodningsarbetsflöde. Det har revolutionerat hur jag närmar mig PowerShell och gjort processen både enklare och mer givande.
How do I redirect a PowerShell script output to a file?
Du kan använda följande metoder för att omdirigera utdata från en PowerShell-skript till en fil:
- Out-File Cmdlet: Använd
Out-Fileför att skicka kommandoutsdata till en textfil. Exempel: powershell Get-Process | Out-File -FilePath 'processlist.txt' - Tee-Object Cmdlet: Använd
Tee-Objectför att både skicka kommandoutsdata till en fil och vidarebefordra den till pipelinen. Exempel: powershell Get-Process | Tee-Object -FilePath 'processlist.txt' - PowerShell Omdirigeringsoperatorer: Använd
>eller>>för att omdirigera utdata direkt till en fil.>skriver över filen, medan>>lägger till utdata i slutet av filen. Exempel: powershell Get-Process > 'processlist.txt' # Skriver över filen Get-Process >> 'processlist.txt' # Lägger till i filen Dessa metoder gör det enkelt att spara och hantera utdata från dina PowerShell-skript.
Nu när du har läst klart Automatisera repetitiva uppgifter via AI-genererade PowerShell-skript, inbjuder vi dig att utforska kategorin Windows ytterligare. Där hittar du fler intressanta artiklar som kommer att utöka dina kunskaper och hålla dig informerad. Sluta inte läsa och upptäcka mer!

Lämna ett svar