[玩转系统] PowerShell 严厉的爱
作者:精品下载站 日期:2024-12-14 08:03:07 浏览:14 分类:玩电脑
PowerShell 严厉的爱
有一天,我正在帮助 Gladys Kravitz 过渡到 VS Code。和你们中的许多人一样,她多年来一直使用 PowerShell ISE,并拥有根深蒂固的工作流程。我首先承认,过渡到 VS Code 并不容易。我记得当我进行转变时。那个挺难。但学习 PowerShell 也是如此。进入 VS Code 就像学习任何新东西一样。你需要不断的接触和重复。最终,你将建立新的肌肉记忆并开发新的工作流程。让我从今天开始对 PowerShell 表现出一点严厉的爱,帮助您打破 ISE 的陈规。是的,这只是一种开玩笑,也是一种教授一些 PowerShell 概念的方式。
杀死 ISE
Gladys 的巨大挑战可能和你们中的许多人一样,是试图打破启动 PowerShell ISE 的习惯。无论您是在 PowerShell 提示符下还是使用“开始”菜单快捷方式运行 ise 别名,都没有关系。我的想法是,如果您无法阻止自己这样做,那么为什么不让 ISE 启动并启动 VS Code?我给了 Gladys 几行代码,将其放入她的 PowerShell ISE 配置文件脚本中,该脚本启动 VS Code,然后终止 ISE。从那时起,我改进了该代码,我想我会与其他人分享它。
在此过程中存在一些假设。首先,当您安装 VS Code 时,您包含了将该应用程序包含在 %PATH% 中的选项。你可以测试一下。在 PowerShell 提示符下运行代码。如果 VS Code 启动,您就可以继续了。
ISE 配置文件脚本
PowerShell ISE 只不过是一个不同的 PowerShell 主机。因此它有自己的一组配置文件脚本。打开 PowerShell ISE 并在控制台中查看您的配置文件。
您可以看到名称中带有 ISE 的脚本。 $Profile 将是当前主机或 ISE 中当前用户的脚本。如果您有,可以运行 psedit $profile 将其打开。否则,创建一个新文件:
New-Item$profile-force-ItemTypeFile
然后在 ISE 中打开该文件。我稍后会给您添加代码。
型材加工
我的目标是尽可能快速、无缝地从 ISE 过渡到 VSCode。在测试时,我发现 ISE 需要更长的时间才能获取我插入的代码。然后我想起来了。 PowerShell 从“所有用户所有主机”开始一直到“当前用户当前主机”查找并处理 PowerShell 配置文件脚本。就我而言,也许也是您的情况,我使用的是“当前用户当前主机”配置文件脚本。该脚本定义了我非常想要的函数和 PSDrive,无论我使用的是 PowerShell ISE 还是 Windows PowerShell。 PowerShell 7 是不同的主机,因此它具有一组不同的配置文件脚本。
在“当前用户当前主机”中,我添加了一条 If 语句。
if ($host.name -notmatch "ISE") {
. c:\scripts\jdh-functions.ps1
. c:\scripts\jdh-aliases.ps1
. c:\scripts\jdh-variables.ps1
. c:\scripts\jdh-psdrives.ps1
...
}
现在,当 ISE 启动并处理此配置文件脚本时,它不会执行任何操作。我也可以走这条路。
If ($host.name -match "ISE") {
Return
}
现在是艰难的爱。在 PowerShell ISE 的配置文件脚本的开头插入此代码。
$WindowState=Add-Type-MemberDefinition@'
[DllImport("user32.dll")]
publicstaticexternboolShowWindowAsync(IntPtrhWnd,intnCmdShow);
'@-Name"WindowState"-NamespaceWin32Functions-PassThru
#getthecurrentprocess
$me=Get-Process-Id$pid
#minimizetheISE
$WindowState::ShowWindowAsync($me.MainWindowHandle,2)
#see if a path was specified
#split on arguments, trimming blank items
$c = (Get-CimInstance -class win32_process -Filter "processid = $pid" -Property Commandline).Commandline.Split() | Where-object {$_}
#Launch VSCode, assuming you added it to your path
$cmd = Get-Command code.cmd
if ($c.count -gt 1) {
#pass each file name to VSCode
$c[-1].split(",").foreach( { &$cmd.source (Resolve-Path $_).Path })
}
else {
&$cmd.source
}
#GracefullyclosetheISE
$me.CloseMainWindow()
这就是发生的事情。
当我启动 PowerShell ISE 时,我想假装我没有启动。因此,代码的第一部分是创建一个从 Win32API 构建的自定义类型。这让我可以最小化 PowerShell ISE 窗口。最小化时,我使用 Get-CimInstance 来获取 PowerShell ISE 进程。这是因为我想检查任何文件名。如果我运行 ise .\get-it.ps1之类的命令,我希望 VSCode 也打开 .\get-it.ps1。 WMI 向我提供此信息。如果我要启动多个文件,这些文件将被检测为逗号分隔的字符串,我可以将其拆分。
如果我像往常一样使用 ISE 别名,那就没问题了。但有一个问题。 VS Code 允许我打开整个文件夹:
code c:\scripts\psfunctioninfo
但如果我使用 ISE 别名尝试相同的操作,则会收到错误消息。但是,当我单击“确定”消除错误时,VS Code 实际上会打开该文件夹。
建立此 PowerShell ISE 配置文件后,无论我如何启动 ISE,VS Code 都会打开,而 ISE 将关闭。
但我真的需要 ISE
如果由于某种原因您确实想在输入此代码后进入 ISE,您所需要做的就是从控制台提示符启动 ISE。
ise -noprofile
但我希望,随着时间的推移,您将不再选择 PowerShell ISE 作为编辑器,而转向 VSCode。因此,如果你一直在努力改掉这个习惯,那就表现出一点严厉的爱吧。未来的你会感谢你。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag