脚本执行后保持 PowerShell 控制台打开
如果通过双击或右键单击脚本并选择使用 PowerShell 运行
或使用 Windows PowerShell 打开
来执行脚本,用户将看到 PowerShell 控制台在消失之前短暂出现。出现这种情况是因为脚本自然会自行终止,尤其是在它抛出错误时。
我们将研究一些在脚本运行后保持 PowerShell 控制台打开的选项,我们将在本文中介绍它们。
阻止 PowerShell 退出
方便的是,Windows PowerShell 有一个 switch 参数,我们可以在运行脚本时传递它。该参数称为 -NoExit
参数。
在运行脚本时附加此内容将防止 PowerShell 控制台在出现错误或脚本执行成功完成时终止。
powershell.exe "C:\PS\sample_script.ps1" -NoExit
但是,这只有在你在外部运行或调用脚本时才有可能。如果有一种方法可以在 PowerShell ISE 等代码编辑器中运行和编辑脚本时保持屏幕并防止其终止,该怎么办?
本机可能没有 PowerShell 命令来执行此操作;但是,我们可以发挥创造力并创造方法来实现我们的目标。在我们继续之前,值得注意的是,你可以在运行 PowerShell 脚本时使用旧命令 pause
来保持屏幕。
输出:
Press any key to continue...
可能没有对应的 pause
传统命令,但我们可以使用 Read-Host
PowerShell 命令重新创建它。
示例代码:
Read-Host -Prompt "Press Enter to continue..."
该方法唯一需要注意的是与 pause
命令不同,它不接受任何键盘敲击,而只接受 Enter 键来终止脚本。它可能与 pause
命令不同,但上面的代码段仍将在终止脚本之前保持屏幕。
有一种方法可以通过编辑注册表来永久和持久地阻止脚本退出。由于注册表具有操作系统范围,因此我们所做的任何更改不仅会影响一个特定的脚本,还会影响你将来运行的所有脚本。
因此,在继续之前请记住这一点。
现在,要继续,我们应该先备份注册表。我们将为本文操作 HKEY_CLASSES_ROOT
注册表文件,因此让我们通过打开命令提示符并运行以下命令来备份它。
reg export HKCR C:\Temp\HKCR.Reg /y
现在我们已经成功备份了我们的注册表,我们可以继续进行。复制下面的命令并使用 .reg
扩展名保存文件。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Applications\powershell.exe\shell\open\command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -NoExit \"& \\\"%1\\\"\""
[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\0\Command]
@="\"C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -NoExit \"-Command\" \"if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & \\\"%1\\\"\""
保存后,双击新创建的 reg
文件以使更改生效。上面的命令将更改 PowerShell 的执行策略,并在执行 PowerShell 脚本时默认包含 -NoExit
开关参数。
运行我们创建的脚本时,我们不需要添加 -NoExit
参数。
相关文章
在 Windows PowerShell 中获取命令行参数
发布时间:2024/03/04 浏览次数:358 分类:编程语言
-
本文将解释我们如何使用 PowerShell 的参数函数处理命令行参数,参数如何工作,我们如何使用 PowerShell 参数将值传递给参数,以及定义参数的基本方法是什么。
Windows PowerShell 中的 Base64 编码
发布时间:2024/03/04 浏览次数:332 分类:编程语言
-
本文将展示如何编码和解码 base64 字符串。Windows PowerShell 当前版本没有本机命令,因此我们将向你展示如何执行此操作的替代方法。
在 Windows PowerShell 中写入输出
发布时间:2024/03/04 浏览次数:259 分类:编程语言
-
本文将向你展示如何在 Windows PowerShell 中编写或打印输出。本文还将区分多个 write cmdlet 并解释它们的意义。
在 Windows PowerShell 中设置 PATH 环境变量
发布时间:2024/03/04 浏览次数:350 分类:编程语言
-
本文将展示在 Windows PowerShell 中设置路径环境变量的正确方法。本文还展示了如何在持久性和非持久性方法中设置变量。
在 Windows PowerShell 中打印环境变量
发布时间:2024/03/04 浏览次数:869 分类:编程语言
-
本文将讨论什么是环境变量以及如何使用多个 Windows PowerShell 命令打印它们。
在 PowerShell 中注释代码
发布时间:2024/03/04 浏览次数:363 分类:编程语言
-
本文将展示在 Windows PowerShell 中注释代码的多种方法。本文还介绍了注释代码时的一些最佳实践。
在 PowerShell 中执行 LDAP 查询
发布时间:2024/03/04 浏览次数:304 分类:编程语言
-
本文将深入了解如何使用 Active Directory 过滤器和 LDAP 过滤器。