搜尋
首頁系統教程Windows系列通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

我一直認為計算機應該為我們服務,而不是相反。當我發現自己專注於重複任務時,對這種信念進行了測試。但是,當我開始利用人工智能(AI)以無縫生成PowerShell腳本以使我的Windows任務自動化時,情況發生了變化。

目錄

  • PowerShell基本面:自動化Windows任務
  • 利用AI製作量身定制的PowerShell腳本
  • 使用任務調度程序安排AI生成的PowerShell腳本

PowerShell基本面:自動化Windows任務

如Microsoft所述,PowerShell既用作命令行的外殼,也可以用作集成到Windows的腳本語言,為系統管理和自動化提供了強大的功能。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

實際上,您可以開發腳本(包含自動執行的命令和說明)的腳本 - 從基本文件操作到復雜的系統管理任務。

可以在線提供許多預先存在的PowerShell腳本,用於常見任務。例如,PowerShell腳本存儲庫託管了超過500個免費腳本,這些腳本從調整系統設置到自動化文件操作的任務。這些腳本可以監視驅動空間,目錄安裝的軟件,甚至可以按日期進行分類。

但是,當您設計滿足您特定需求的自定義腳本時,PowerShell的真正潛力就會實現,這是AI證明是無價的。

利用AI製作量身定制的PowerShell腳本

讓我分享我如何使用AI來生成PowerShell腳本以自動化任務,而無需掌握PowerShell,並用一個實際的示例說明了PowerShell。

最近,我使用Photorec從失敗的驅動器中恢復數據,從而在單個目錄中產生數千個文件,從而使手動分類一個艱鉅的任務。我想自動將這些文件分為主要類別,例如圖像,音頻,文檔等。

我沒有花費數小時學習PowerShell或尋找理想的預製腳本,而是詳細描述了我的需求。這是我將請求構成AI的方式:

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

我確保了我的提示包括:

  • 如何處理不適合我類別的文件
  • 我想完成的確切任務(通過擴展組織文件)
  • 每個類別的特定類別和文件類型

我在AI提示中清楚地表明,我正在尋找一個PowerShell腳本,而不是bash腳本。

瞬間,AI製作了此PowerShell腳本以自動化我的任務:

 <code># Define the source folder as the current directory where the script is executed<br>$sourceFolder = $PSScriptRoot<br><br># Define category folders and their associated file extensions<br>$categories = @{<br> "Images" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".raw", ".cr2", ".nef", ".heic", ".psd", ".ai", ".eps")<br> "Documents" = @(".pdf", ".docx", ".doc", ".txt", ".rtf", ".xlsx", ".xls", ".pptx", ".ppt", ".odt", ".ods", ".odp", ".md", ".csv", ".json", ".xml", ".html", ".htm", ".log", ".tex", ".epub", ".mobi")<br> "Audio" = @(".mp3", ".wav", ".aac", ".flac", ".ogg", ".wma", ".m4a", ".mid", ".midi", ".aiff", ".alac", ".ape", ".opus", ".amr", ".au", ".voc")<br> "Video" = @(".mp4", ".avi", ".mov", ".wmv", ".mkv", ".flv", ".webm", ".m4v", ".mpg", ".mpeg", ".3gp", ".3g2", ".ts", ".vob", ".ogv", ".divx", ".asf", ".rm", ".rmvb")<br> "Archives" = @(".zip", ".rar", ".7z", ".tar", ".gz", ".bz2", ".xz", ".cab", ".iso", ".tgz", ".tbz2", ".lzh", ".dmg", ".pkg", ".deb", ".rpm")<br> "Code" = @(".py", ".js", ".html", ".css", ".java", ".c", ".cpp", ".cs", ".php", ".rb", ".go", ".swift", ".sql", ".ps1", ".sh", ".bat", ".vbs", ".ts", ".jsx", ".r", ".pl", ".lua")<br> "Executables" = @(".exe", ".msi", ".app", ".apk", ".dll", ".bin", ".com", ".jar", ".gadget", ".wsf", ".appx", ".appxbundle")<br> "Other" = @()<br>}<br><br># Create category folders if they don't exist<br>foreach ($category in $categories.Keys) {<br> $categoryPath = Join-Path -Path $sourceFolder -ChildPath $category<br> if (-not (Test-Path -Path $categoryPath)) {<br> New-Item -Path $categoryPath -ItemType Directory | Out-Null<br> Write-Host "Created folder: $category"<br> }<br>}<br><br># Get all files in the source folder (non-recursive)<br>$files = Get-ChildItem -Path $sourceFolder -File | Where-Object { $_.Name -ne $MyInvocation.MyCommand.Name }<br><br># Counter for moved files<br>$movedFiles = 0<br>$totalFiles = $files.Count<br><br>Write-Host "Starting to organize $totalFiles files..."<br><br># Process each file<br>foreach ($file in $files) {<br> $extension = $file.Extension.ToLower()<br> $targetCategory = "Other"<br><br> # Determine which category the file belongs to<br> foreach ($category in $categories.Keys) {<br> if ($category -eq "Other") { continue }<br> if ($categories[$category] -contains $extension) {<br> $targetCategory = $category<br> break<br> }<br> }<br><br> # Move the file to the appropriate category folder<br> $targetPath = Join-Path -Path $sourceFolder -ChildPath $targetCategory<br> $targetFile = Join-Path -Path $targetPath -ChildPath $file.Name<br><br> # Check if target file already exists and handle accordingly<br> if (Test-Path -Path $targetFile) {<br> $baseName = [System.IO.Path]::GetFileNameWithoutExtension($file.Name)<br> $newName = "$baseName`_$(Get-Random)$extension"<br> $targetFile = Join-Path -Path $targetPath -ChildPath $newName<br> }<br><br> Move-Item -Path $file.FullName -Destination $targetFile<br> $movedFiles <br><br> # Show progress<br> $percentComplete = [math]::Round(($movedFiles / $totalFiles) * 100, 2)<br> Write-Progress -Activity "Organizing Files" -Status "$movedFiles of $totalFiles files processed ($percentComplete%)" -PercentComplete $percentComplete<br>}<br><br>Write-Host "File organization complete! Moved $movedFiles files into categories."</code>

劇本對腳本進行了徹底的評論,如果您想學習PowerShell並進行手動調整,則可以更輕鬆地理解和修改。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

要將此代碼轉換為功能腳本,我只需從AI聊天複製整個代碼塊,然後打開Windows Notepad (或任何文本編輯器)。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

粘貼代碼後,我用描述性名稱和.ps1擴展名保存了文件(例如“ andomize-files.ps1”)。我將此腳本直接放置在文件夾中,並通過恢復文件將其執行,並通過右鍵單擊文件並使用PowerShell選擇運行。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

很快就將成千上萬個分散的文件整齊地組織到適當的文件夾中。

使用任務調度程序安排AI生成的PowerShell腳本

AI生成的PowerShell腳本可以自動化您的Windows任務而無需手動干預更有價值!

我花了很長時間在計算機上工作,並且常常忘記休息,從而導致眼睛疲勞並降低生產力。我決定創建一個腳本,以提醒我定期進行屏幕休息。同樣,我通過明確的請求向AI尋求幫助:

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

AI迅速生成了這個備受眼神的腳本:

 <code># Script to remind user to take regular screen breaks<br><br># Load required assemblies for notifications<br>Add-Type -AssemblyName System.Windows.Forms<br><br># Function to show break reminder notification<br>function Show-BreakReminder {<br> $motivationalMessages = @(<br> "Time for a 5-minute break! Rest your eyes and stretch.",<br> "Screen break time! Look at something 20 feet away for 20 seconds.",<br> "Break time! Stand up and move around for 5 minutes.",<br> "Your eyes need a rest! Take 5 minutes away from the screen.",<br> "Productivity hack: A 5-minute break now will boost your focus!"<br> )<br><br> # Select a random message<br> $randomMessage = $motivationalMessages | Get-Random<br><br> # Create and configure the notification<br> $notification = New-Object System.Windows.Forms.NotifyIcon<br> $notification.Icon = [System.Drawing.SystemIcons]::Information<br> $notification.BalloonTipTitle = "Wellness Reminder"<br> $notification.BalloonTipText = $randomMessage<br> $notification.Visible = $true<br><br> # Show notification for 10 seconds<br> $notification.ShowBalloonTip(10000)<br><br> # Clean up after a delay<br> Start-Sleep -Seconds 12<br> $notification.Dispose()<br>}<br><br># Display an initial notification<br>Show-BreakReminder<br><br>Write-Host "Break reminder displayed. Set this script to run hourly using Task Scheduler."</code>

這個腳本正是我所需要的,但是我希望它在不干預的情況下每小時自動運行。為此,我使用了Windows任務調度程序。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

我將AI生成的PowerShell腳本保存為.ps1文件,然後從開始菜單打開任務調度程序,並使用每日觸發器創建了一個新的基本任務

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

設置基本任務後,我修改了觸發設置以進行小時執行。在任務調度程序庫中,我找到了新創建的任務,並右鍵單擊以選擇屬性。我去了“觸發器”選項卡,然後選擇了編輯。在“編輯觸發”窗口中,我每個選項都檢查了重複任務,並將重複間隔設置為1小時。在持續時間下,我無限地選擇了,然後單擊確定以保存這些設置。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

我還需要正確配置操作設置。在屬性窗口中,我導航到“操作”選項卡並選擇的編輯。對於程序/腳本字段,我輸入了powershell.exe,而不是腳本的直接路徑。在“添加參數”字段中,我輸入-ExecutionPolicy旁路-WindowStyle隱藏-file“ C:\ Users \ David \ David \ Desktop \ Eye -saver.ps1”,其中包括執行參數和腳本的完整路徑。

通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易

進行這些調整後,我單擊了確定以保存操作設置,然後在屬性窗口上再次單擊確定以最終確定所有更改。努力非常值得!

這種AI驅動方法的優點是,一旦您通過PowerShell腳本設置了一些自動化任務,您的計算機就會在後台為您工作,提供那些以前要求您記住或設置外部警報的有用提醒。

如果您熱衷於為自動化項目探索更多的PowerShell功能,請查看我們有關每個Windows用戶都應熟悉的基本PowerShell命令的指南。這些命令是更複雜的腳本的基礎,將幫助您了解AI生成的自動化背後的機制。

大衛·莫雷洛(David Morelo)的所有圖像和屏幕截圖。

以上是通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易通過AI生成的PowerShell腳本自動重複任務 - 使技術更容易May 16, 2025 am 02:35 AM

我一直認為計算機應該為我們服務,而不是相反。當我發現自己專注於重複任務時,對這種信念進行了測試。但是,當我開始利用人工智能(ai)t時,情況發生了變化

如果您的Microsoft帳戶上的活動中有不尋常的跡象,該怎麼辦如果您的Microsoft帳戶上的活動中有不尋常的跡象,該怎麼辦May 16, 2025 am 02:34 AM

與其他大型公司類似,Microsoft優先考慮您的帳戶安全性和保護有害意圖的個人未經授權的訪問權限。如果Microsoft檢測到異常的登錄嘗試,則將其標記為可疑。您會收到一個

如何在Windows中回滾驅動程序 - 使技術更容易如何在Windows中回滾驅動程序 - 使技術更容易May 16, 2025 am 02:33 AM

在Windows系統中,驅動程序問題是相當常見的。有時候,新驅動程序的更新可能會在Windows中引發藍屏死機(BSOD)錯誤信息。幸運的是,通過回滾驅動程序可以解決這個問題。您可以使用回滾驅動程序功能將驅動程序更新還原到之前的版本,以檢查其是否正常運行。以下是如何在Windows中回滾驅動程序的詳細指南。目錄在Windows中回滾驅動程序如果回滾驅動程序選項被禁用怎麼辦?常見問題解答在Windows中回滾驅動程序Windows自帶了一些專為檢測和解決操作系統可能出現的衝突而設計的內置工具。這包

如何獲得Windows註冊表鍵的全部所有權 - 使技術更容易如何獲得Windows註冊表鍵的全部所有權 - 使技術更容易May 16, 2025 am 02:28 AM

Windows註冊表是存儲與Windows操作系統及其軟件相關的所有配置的中心樞紐。這就是為什麼許多Windows教程通常涉及添加,修改或刪除註冊表鍵。

如何刪除Windows 11中的'系統需求”水印 - 使技術更容易如何刪除Windows 11中的'系統需求”水印 - 使技術更容易May 16, 2025 am 02:27 AM

Windows 11確實有嚴格的安裝要求。然而,在不支持的設備上安裝Windows 11並非難事。如果您成功安裝了,請不要急於慶祝。您還需要清除微軟為阻止在不支持的硬件上安裝而引入的桌面“系統要求未滿足”水印。本指南列出了三種方法來去除此水印。目錄組策略編輯器Windows註冊表編輯器腳本組策略編輯器如果您使用的是Windows Pro或Enterprise版,並且啟用了組策略編輯器,此方法最為簡單。按照以下說明通過組策略編輯器禁用水印。在Windows搜索中輸入“組策略”,並點擊結果中的編輯組

Microsoft Teams Camera無法正常工作?了解如何解決Microsoft Teams Camera無法正常工作?了解如何解決May 16, 2025 am 02:22 AM

Microsoft團隊是一個廣泛使用組織內部協作和溝通的平台。儘管它有效,但您偶爾在通話過程中可能會面對相機的問題。本指南提供了一系列解決方案來解決

如何在Windows中檢查RAM類型 - 使技術更容易如何在Windows中檢查RAM類型 - 使技術更容易May 16, 2025 am 02:21 AM

如果您計劃升級您的RAM或測試其性能,了解您的RAM類型非常重要。這意味著需要評估您的筆記本電腦或PC以確定它支持的DDR模塊,以及其他細節,如RAM的形式、速度和容量。本教程將展示如何在Windows中使用各種Windows應用和第三方工具來檢查RAM類型。目錄通過命令提示符檢查RAM類型通過任務管理器在Windows中檢查RAM類型在PowerShell中檢查RAM類型使用CPU-Z檢查RAM類型使用Novabench檢查RAM類型通過目視檢查主板來檢查RAM類型通過命令提示符檢查RAM類型

如何在Windows上修復'地方安全局保護”  - 使技術更容易如何在Windows上修復'地方安全局保護” - 使技術更容易May 16, 2025 am 02:20 AM

地方安全局(LSA)保護是一項至關重要的安全功能,旨在保護用戶在Windows計算機上的憑據,從而防止未經授權的訪問。一些用戶遇到了一條錯誤消息,指出“本地安全A

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境