搜索
首页系统教程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

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

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)