通过AI生成的PowerShell脚本自动重复任务 - 使技术更容易
我一直认为计算机应该为我们服务,而不是相反。当我发现自己专注于重复任务时,对这种信念进行了测试。但是,当我开始利用人工智能(AI)以无缝生成PowerShell脚本以使我的Windows任务自动化时,情况发生了变化。
目录
- PowerShell基本面:自动化Windows任务
- 利用AI制作量身定制的PowerShell脚本
- 使用任务调度程序安排AI生成的PowerShell脚本
PowerShell基本面:自动化Windows任务
如Microsoft所述,PowerShell既用作命令行的外壳,也可以用作集成到Windows的脚本语言,为系统管理和自动化提供了强大的功能。
实际上,您可以开发脚本(包含自动执行的命令和说明)的脚本 - 从基本文件操作到复杂的系统管理任务。
可以在线提供许多预先存在的PowerShell脚本,用于常见任务。例如,PowerShell脚本存储库托管了超过500个免费脚本,这些脚本从调整系统设置到自动化文件操作的任务。这些脚本可以监视驱动空间,目录安装的软件,甚至可以按日期进行分类。
但是,当您设计满足您特定需求的自定义脚本时,PowerShell的真正潜力就会实现,这是AI证明是无价的。
利用AI制作量身定制的PowerShell脚本
让我分享我如何使用AI来生成PowerShell脚本以自动化任务,而无需掌握PowerShell,并用一个实际的示例说明了PowerShell。
最近,我使用Photorec从失败的驱动器中恢复数据,从而在单个目录中产生了数千个文件,从而使手动分类一个艰巨的任务。我想自动将这些文件分为主要类别,例如图像,音频,文档等。
我没有花费数小时学习PowerShell或寻找理想的预制脚本,而是详细描述了我的需求。这是我将请求构成AI的方式:
我确保了我的提示包括:
- 如何处理不适合我类别的文件
- 我想完成的确切任务(通过扩展组织文件)
- 每个类别的特定类别和文件类型
我在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聊天复制整个代码块,然后打开Windows Notepad (或任何文本编辑器)。
粘贴代码后,我用描述性名称和.ps1扩展名保存了文件(例如“ andomize-files.ps1”)。我将此脚本直接放置在文件夹中,并通过恢复文件将其执行,并通过右键单击文件并使用PowerShell选择运行。
很快就将成千上万个分散的文件整齐地组织到适当的文件夹中。
使用任务调度程序安排AI生成的PowerShell脚本
AI生成的PowerShell脚本可以自动化您的Windows任务而无需手动干预更有价值!
我花了很长时间在计算机上工作,并且常常忘记休息,从而导致眼睛疲劳并降低生产力。我决定创建一个脚本,以提醒我定期进行屏幕休息。同样,我通过明确的请求向AI寻求帮助:
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脚本保存为.ps1文件,然后从开始菜单打开任务调度程序,并使用每日触发器创建了一个新的基本任务。
设置基本任务后,我修改了触发设置以进行小时执行。在任务调度程序库中,我找到了新创建的任务,并右键单击以选择属性。我去了“触发器”选项卡,然后选择了编辑。在“编辑触发”窗口中,我每个选项都检查了重复任务,并将重复间隔设置为1小时。在持续时间下,我无限地选择了,然后单击确定以保存这些设置。
我还需要正确配置操作设置。在属性窗口中,我导航到“操作”选项卡并选择的编辑。对于程序/脚本字段,我输入了powershell.exe,而不是脚本的直接路径。在“添加参数”字段中,我输入-ExecutionPolicy旁路-WindowStyle隐藏-file“ C:\ Users \ David \ David \ Desktop \ Eye -saver.ps1”,其中包括执行参数和脚本的完整路径。
进行这些调整后,我单击了确定以保存操作设置,然后在属性窗口上再次单击确定以最终确定所有更改。努力非常值得!
这种AI驱动方法的优点是,一旦您通过PowerShell脚本设置了一些自动化任务,您的计算机就会在后台为您工作,提供那些以前要求您记住或设置外部警报的有用提醒。
如果您热衷于为自动化项目探索更多的PowerShell功能,请查看我们有关每个Windows用户都应熟悉的基本PowerShell命令的指南。这些命令是更复杂的脚本的基础,将帮助您了解AI生成的自动化背后的机制。
大卫·莫雷洛(David Morelo)的所有图像和屏幕截图。
以上是通过AI生成的PowerShell脚本自动重复任务 - 使技术更容易的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Nanoleaf的Pegboard Desk Dock:时尚且功能型的桌子组织者 厌倦了相同的旧充电设置? NanoLeaf的新Pegboard Desk Dock提供了一种时尚且功能性的替代方案。 这款多功能桌配件拥有32个全彩RGB

ASUS ROG Zephyrus G14 电竞笔记本电脑特惠! 现在购买ASUS ROG Zephyrus G14 电竞笔记本电脑,即可享受300美元的优惠!原价1999美元,现价仅需1699美元!随时随地畅享沉浸式游戏体验,或将其作为可靠的便携式工作站。 Best Buy目前提供这款2024款14英寸ASUS ROG Zephyrus G14电竞笔记本电脑的优惠活动。其强大的配置和性能令人印象深刻。 这款ASUS ROG Zephyrus G14电竞笔记本电脑在Best Buy的售价为16

解锁隐藏的Windows功能,以获得更流畅的体验! 发现令人惊讶的有用的Windows功能,可以显着增强您的计算体验。甚至经验丰富的Windows用户也可能在这里找到一些新技巧。 动态锁:自动

在当今的触摸屏世界中,身体控制的令人满意的触觉反馈是一个可喜的变化。 这就是为什么具有较大音量旋钮的键盘令人惊讶地吸引人的原因。我最近亲身经历了这是一个启示。 为了

鼠标是在PC上完成工作的重要组成部分。但是,当您陷入错误的鼠标时,您可能会遇到一些问题,包括无法右键单击。但是好消息是,肯定有一些方法

RTX 50系GPU:增量升级,竞争性价格(主要是) RTX 50系列代表了GPU技术的革命性飞跃,代表了一个测得的进化。 虽然性能提高是适中的,但AI增强功能是关键功能。

Acer最新游戏笔记本电脑系列令人惊艳,但该公司还推出了一款台式电脑,这款电脑在Acer的产品线中位置尴尬,与其他小型台式电脑相比,它也有其自身的优缺点。 Acer今日在其广受欢迎的Nitro游戏系列中增加了四款新笔记本电脑和一款重新设计的紧凑型台式电脑。不过,让我们先谈谈台式电脑,因为它最独特。它的独特之处在于它使用了笔记本电脑规格。Nitro 20 N20-100采用AMD Ryzen AI 9 365处理器,或者也可以选择Intel Core i5-13420H台式机处理器。显卡最高可配备

Logitech悄悄地提高了许多产品的价格,理由没有具体的原因。 观察者注意到,各种物品的价格最多上涨了25%,这强烈表明,正在进行的美国关税对从中国进口的商品的影响,Logitech的主要制造商
