如果我在 Windows 10 v1909 上以管理员身份运行 PowerShell 并对终端窗口进行更改(例如更改缓冲区),则更改将会按应有的方式保存,这里有一个示例,将缓冲区大小更改为999
:
但只有当我以“相同方式”启动它时才会这样。第二个启动过程似乎有它自己的“存储”,并且没有给我相同的结果:
- 使用命令运行对话框
powershell
并点击Ctrl+ Shift+OK 执行(使其以管理员身份运行
相对
- Win+X 菜单,选择
Windows PowerShell (Administrator)
通过某种方式打开 PowerShell 时,内部究竟发生了什么不同?我可以使用运行对话框中的开关强制它打开“相同”的 Powershell 吗?
powershell.exe
我的第一个猜测是那里有两个副本,但两个进程都显示它们在 中启动了相同的二进制文件%WinDir%\System32\WindowsPowerShell\v1.0
,其中一个显示为 ,PowerShell.exe
另一个显示为powershell.exe
。它看起来像是通过 Win+X 选项的某种参数来启动第二个配置文件?!
答案1
答案2
回到您最初的疑问...至于这个...
在内部打开 PowerShell 时究竟有什么不同
... 这根本就不是事。Windows PowerShell 是操作系统的一部分。无论如何启动 PowerShell 都是一样的。没有 PowerShell 内部/外部启动的概念。
当您使用运行命令 cmd.exe、Win+X 等时,每次这些都是新的 PowerShell 实例,与存储等无关。您在会话中所做的任何设置都仅适用于该会话。
如果你想保留这些设置,唯一的方法是,创建桌面快捷方式或修改现有快捷方式(即右键单击快捷方式并单击属性 - 就像使用任何其他 Windows 快捷方式一样)并设置所需的属性。
对于 PowerShell 来说,第二种方法是创建和使用 PowerShell 配置文件。这实际上是在 PowerShell 培训课上度过的一天 1 小时 1 个小时。
@JW0914 在此处试图表达的是,PowerShell 目录只有在您创建配置文件或手动创建它们时才会存在。只需启动 powershell.exe,然后执行以下操作即可...
New-Item –Path $Profile –Type File –Force
..启动 powershell_ise.exe 并执行相同的操作,然后创建“WindowsPowerShell”目录...
C:\Users\你的用户名\Documents\WindowsPowerShell
和两者个人资料将会
Microsoft.PowerShell_profile.ps1
Microsoft.PowerShellISE_profile.ps1
这些只是空文件,如上所述,基础将是一个您可以设置任何您选择的首选项的位置,并且除非您使用 -noprofile 参数启动 powershell.exe 或 powershell_ise,否则它们将被使用。
请参阅 Powershell 帮助文档。
PowerShell 的另一个版本称为PowerShell 核心 (pwsh.exe)并且它是跨平台的(Win/OSX/Linux),但不会升级/替换 Windows PowerShell。它们旨在并行运行。它也有自己的路径和配置文件,与 Windows PowerShell 路径分开。
C:\Users\你的用户名\Documents\PowerShell
Microsoft.PowerShell_profile.ps1
没有适用于 PowerShell Core 的 ISEISE for PowerShell 核心的替代品称为Visual Studio 代码。它也有自己的配置文件,并且必须位于 PowerShell 文件夹中。
Microsoft.VSCode_profile.ps1