
Czy kiedykolwiek przytłoczyły Cię nudne zadania komputerowe? Nie jesteś sam! Dobra wiadomość jest taka, że z odrobiną pomocy sztucznej inteligencji (AI) możesz usprawnić i zautomatyzować zadania Windows za pomocą skryptów PowerShell, uwalniając cenny czas na ważniejsze czynności.
Omówienie programu PowerShell: Twój sojusznik w automatyzacji
PowerShell służy zarówno jako potężna powłoka wiersza poleceń, jak i kompleksowy język skryptowy osadzony w systemie Windows, zapewniając niezwykłe rozwiązania administracyjne i automatyzacyjne. Według Microsoftu jest to narzędzie, które może zmienić sposób zarządzania zadaniami na komputerze.

Za pomocą programu PowerShell można tworzyć skrypty — samowystarczalne pliki wypełnione poleceniami i instrukcjami — pozwalające zautomatyzować wszystko, od podstawowego zarządzania plikami po złożone operacje systemowe.
Dla osób, które dopiero zaczynają przygodę ze skryptami, w Internecie dostępnych jest wiele gotowych skryptów PowerShell. Na przykład repozytorium skryptów PowerShell zawiera ponad 500 darmowych skryptów zaprojektowanych w celu pomocy w różnych zadaniach, w tym monitorowanie miejsca na dysku, wyświetlanie zainstalowanych programów i organizowanie zdjęć według daty utworzenia.
Choć gotowe do użycia skrypty są cenne, prawdziwy potencjał programu PowerShell tkwi w możliwości tworzenia spersonalizowanych skryptów dostosowanych do konkretnych wymagań — to właśnie tutaj sztuczna inteligencja staje się czynnikiem zmieniającym zasady gry!
Wykorzystanie sztucznej inteligencji do generowania niestandardowych skryptów programu PowerShell
Wyobraź sobie, że musisz uporządkować tysiące plików odzyskanych z uszkodzonego dysku twardego. Zamiast spędzać godziny na opanowywaniu składni programu PowerShell lub przeszukiwaniu w poszukiwaniu idealnego, istniejącego skryptu, użyłem ChatGPT, aby stworzyć niestandardowy skrypt.
Na potrzeby mojej konkretnej potrzeby — sortowania różnych typów plików (takich jak obrazy, pliki audio i dokumenty) — stworzyłem jasny, zwięzły monit dla sztucznej inteligencji:

Oto, co uwzględniłem w moim monicie AI:
- Instrukcje dotyczące postępowania z plikami, które nie pasują do żadnej kategorii.
- Dokładne zadanie polegające na organizowaniu plików według ich rozszerzeń.
- Podział kategorii i typów plików dla każdej grupy.
Sztuczna inteligencja szybko wygenerowała skuteczny skrypt programu PowerShell, który uporał się z zadaniem organizacji plików:
# Define the source folder as the current directory where the script is executed$sourceFolder = $PSScriptRoot# Define category folders and their associated file extensions$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" = @()}# Create category folders if they don't existforeach ($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 "Created folder: $category" }} # Get all files in the source folder (non-recursive)$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_. Name -ne $MyInvocation. MyCommand. Name } # Counter for moved files$movedFiles = 0$totalFiles = $files. CountWrite-Host "Starting to organize $totalFiles files..." # Process each fileforeach ($file in $files) { $extension = $file. Extension. ToLower() $targetCategory = "Other" # Determine which category the file belongs to foreach ($category in $categories. Keys) { if ($category -eq "Other") { continue } if ($categories[$category] -contains $extension) { $targetCategory = $category break } } # Move the file to the appropriate category folder $targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory $targetFile = Join-Path -Path $targetPath -ChildPath $file. Name # Check if target file already exists and handle accordingly 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++ # Show progress $percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2) Write-Progress -Activity "Organizing Files" -Status "$movedFiles of $totalFiles files processed ($percentComplete%)" -PercentComplete $percentComplete } Write-Host "File organization complete! Moved $movedFiles files into categories."
Automatyzacja skryptów programu PowerShell za pomocą harmonogramu zadań
Magia skryptów PowerShell generowanych przez sztuczną inteligencję nie kończy się na ich utworzeniu. Można je również skonfigurować tak, aby uruchamiały się automatycznie, eliminując potrzebę ingerencji człowieka!
Ponieważ często pomijam przerwy podczas długich sesji komputerowych, stworzyłem skrypt, który ostrzega mnie o konieczności zrobienia krótkich przerw. Ponownie wykorzystałem AI do wygenerowania tego skryptu przypominającego z prostym poleceniem:
Powstały skrypt programu PowerShell był idealnie dostosowany do moich potrzeb:
# Script to remind user to take regular screen breaks # Load required assemblies for notifications Add-Type -AssemblyName System. Windows. Forms# Function to show break reminder notification function Show-BreakReminder { $motivationalMessages = @( "Time for a 5-minute break! Rest your eyes and stretch.", "Screen break time! Look at something 20 feet away for 20 seconds.", "Break time! Stand up and move around for 5 minutes.", "Your eyes need a rest! Take 5 minutes away from the screen.", "Productivity hack: A 5-minute break now will boost your focus!" ) # Select a random message $randomMessage = $motivationalMessages | Get-Random # Create and configure the notification $notification = New-Object System. Windows. Forms. NotifyIcon $notification. Icon = [System. Drawing. SystemIcons]::Information $notification. BalloonTipTitle = "Wellness Reminder" $notification. BalloonTipText = $randomMessage $notification. Visible = $true # Show notification for 10 seconds $notification. ShowBalloonTip(10000) # Clean up after a delay Start-Sleep -Seconds 12 $notification. Dispose() } # Display an initial notification Show-BreakReminder Write-Host "Break reminder displayed. Set this script to run hourly using Task Scheduler."
Teraz, gdy miałem skrypt, ustawiłem go tak, aby automatycznie wykonywał się co godzinę za pomocą Harmonogramu zadań systemu Windows. Oto jak to zrobić:

Najpierw zapisałem wygenerowany przez AI skrypt jako plik.ps1 i uzyskałem dostęp do Task Scheduler przez Start Menu. Następnie utworzyłem nowe podstawowe zadanie z codziennym wyzwalaczem.

Zmodyfikowałem ustawienia wyzwalacza, aby uruchamiać zadanie co godzinę. Po zlokalizowaniu zadania w bibliotece harmonogramu zadań kliknąłem je prawym przyciskiem myszy i wybrałem Właściwości. Na karcie Wyzwalacze kliknąłem Edytuj, zaznaczyłem opcję Powtarzaj zadanie co: i ustawiłem interwał na 1 godzinę. Wybrałem również opcję Nieograniczony w obszarze Czas trwania i zapisałem zmiany, klikając OK.

Następnie dostosowałem ustawienia akcji w oknie Właściwości, przechodząc do zakładki Akcje i klikając Edytuj. W polu Program/skrypt wprowadziłem powershell.exe
zamiast bezpośredniej ścieżki do mojego skryptu. W polu Dodaj argumenty użyłem -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\David\Desktop\eye-saver.ps1"
, które obejmowało zarówno zasady wykonywania, jak i pełną ścieżkę do mojego skryptu.

Po zapisaniu tych ustawień, sfinalizowałem okno Właściwości, klikając OK dwa razy. Rezultat? Bezproblemowo działające przypomnienie, które zwiększa moją produktywność, jednocześnie zmniejszając zmęczenie oczu!
Piękno stosowania AI w tworzeniu i automatyzowaniu skryptów PowerShell polega na niezwykłej wydajności, jaką wprowadza do codziennej rutyny. Dzięki tym prostym poleceniom nie tylko wspierasz lepszy przepływ pracy, ale także umożliwiasz komputerowi wykonywanie pracy za Ciebie w tle.
Autorem wszystkich obrazów i zrzutów ekranu jest David Morelo.
Często zadawane pytania
1. Czy do tworzenia skryptów programu PowerShell potrzebna jest wiedza programistyczna?
Nie, nie potrzebujesz rozległej wiedzy programistycznej. Dzięki narzędziom AI, takim jak ChatGPT, możesz generować skrypty, po prostu opisując, czego chcesz, dzięki czemu będzie to dostępne dla każdego.
2. Jak mogę automatycznie uruchamiać skrypty programu PowerShell?
Możesz zaplanować swoje skrypty PowerShell za pomocą Harmonogramu zadań systemu Windows. Umożliwia to ich uruchamianie w określonych odstępach czasu, automatyzując zadania bez dalszych działań z Twojej strony.
3. Co się stanie, jeśli mój skrypt wygenerowany przez sztuczną inteligencję nie będzie działał zgodnie z oczekiwaniami?
Początkowe skrypty często wymagają poprawek. Przejrzyj wygenerowany kod, upewnij się, że ścieżki są poprawne i dostosuj wszystkie parametry. Nie wahaj się zapoznać z dokumentacją programu PowerShell w celu rozwiązywania problemów!
Dodaj komentarz ▼