在过去几年中,我有机会帮助同事们编写和优化各种任务所需的PowerShell脚本。虽然实际上这离全职工作还差得很远,但一个可靠且高效的环境对我来说非常重要。当我需要自动化流程、解决一个问题或快速提供解决方案时,通常会用到PowerShell脚本。
没有合适的配置,即使是简单的脚本也可能变成令人沮丧的时间浪费。这就是我专注于创建一个无缝运行环境的原因。这个环境能够提高生产力并尽量减少启动所需的精力。在这篇文章中,我将会分享我如何配置我的PowerShell开发环境,让编写脚本变得高效且愉悦——即使这并不是我当天的主要任务。
文件夹:在我的电脑上,我有两个本地文件夹,一个叫做“实用工具”,一个叫做“商务”。
在我的这些文件夹里有一些我创建或下载的PowerShell模块。
我有一些不同类型的模块,有的用于压缩文件夹,有的用于读取CSV文件等等。
这些模块让我在开发或调试时更高效,每次我都不必记得要导入哪个模块。
正如我之前所说,我不想每次手动在我的脚本里导入所有模块。
所以我修改了配置脚本,在当PowerShell加载时包含这些文件夹中的所有模块。
要更改个人资料,你可以打开终端,然后输入:
这里的代码是
代码段 $Profile
进入全屏模式。退出全屏模式。
现在,在新的 Visual Studio Code 窗口中,你可以粘贴下面的代码。
Write-Host "正在初始化模块..." -ForegroundColor Cyan
# 确保脚本执行过程中出现任何错误都会停止
$ErrorActionPreference = "Stop"
# 定义模块路径和排除项
$ModuleDefinitions = @{
Utilities = @{
Path = "D:\_TEMP_\PowerShell\Utilities"
}
Business = @{
Path = "D:\_TEMP_\PowerShell\Business"
}
}
# 遍历每个模块定义
foreach ($moduleName in $ModuleDefinitions.Keys) {
$moduleDetails = $ModuleDefinitions[$moduleName]
$modulePath = $moduleDetails.Path
# 更新PSModulePath以包含当前模块路径
if (-Not ($env:PSModulePath -contains $modulePath)) {
$env:PSModulePath = @(
$env:PSModulePath
$modulePath
) -join [System.IO.Path]::PathSeparator
}
# 从指定路径加载模块,排除不需要的目录
Get-ChildItem -Path $modulePath -Directory -Exclude @(".git") |
ForEach-Object {
Write-Host "正在从'$moduleName'加载'$($_.Name)'模块" -ForegroundColor Green
try {
Import-Module $_.Name -ErrorAction Stop
} catch {
Write-Host "加载'$($_.Name)'模块失败: $_" -ForegroundColor Red
}
}
}
Write-Host "模块加载完成!" -ForegroundColor Cyan
全屏模式 退出全屏
有了上面的代码,每次我打开 PowerShell 会话时,所有的工具和模块都会被正确加载,确保一切就绪。
在 VS Code 中安装 PowerShell 扩展PowerShell 扩展增强了 VS Code 的功能,比如 IntelliSense、调试和代码片段等。
安装步骤如下:
- 打开 VS Code。
- 通过点击侧边栏中的方形图标或按 Ctrl+Shift+X 进入扩展视图。
- 在搜索框中输入 "PowerShell",然后点击搜索结果中的 "安装",以安装 Microsoft 的 PowerShell 扩展。
对于终端配置,你可以参考我之前的帖子中的一个。
## 把Windows终端变成生产力利器 Emanuele Bartolesi 这是学习平台上的 ・ 2024年12月27日发布 #Windows #终端 #命令行 ](https://dev.to/this-is-learning/transforming-windows-terminal-into-a-productivity-powerhouse-53d5)
最终的结果如果一切顺利运行,每次你打开一个新的 PowerShell 窗口时,你应该会看到类似的内容:
……
如果你喜欢这篇博客文章,并想了解更多关于 C# 开发的内容,你可能会对我每两周发送的通讯《Dev Dispatch》感兴趣。通过订阅,你可以获得独家内容和技巧,以及有关开发世界的最新新闻和趋势的更新。你还可以与我互动,分享你的反馈和想法。要订阅,请访问 https://buttondown.email/kasuken?tag=devto,输入你的电子邮件地址并点击订阅按钮即可。你可以随时取消订阅。感谢你的支持!