在 Powershell (Win 10) 中执行批处理不影响父 Shell
Execute Batch in Powershell (Win 10) does not affect Parent Shell
只是为了理解这一点。
我想在某个文件夹中打开我的 Powershell。由于我没有找到方法,所以我尝试将一个只有 "cd ....." 的批处理文件放在 PowerShell 打开的默认文件夹中。
但是,当我执行批处理时,我最终回到了开始的地方。
似乎批处理在不影响 Parentshell 的子 shell 中执行。
如何在 parentshell 中执行批处理文件中的内容?
提前致谢!
你不能。批处理文件由 cmd 执行,而不是 PowerShell,因此它们总会有一个新进程。
通过 PowerShell 脚本,您可以使用点源
. Script.ps1
在你当前的范围内执行脚本,这与cmd默认执行批处理文件的方式最相似。
如果您想在某个文件夹中打开您的 Powershell,您可以在您的 Powershell 配置文件中进行设置。在 Powershell 中,键入 $profile,这将为您提供配置文件的位置。编辑该文件并使用 Set-Location:
Set-Location 'C:\Some\Place'
每次您打开一个新的 Powershell 会话时,Powershell 都会执行您的配置文件脚本中的任何内容。
只是为了理解这一点。
我想在某个文件夹中打开我的 Powershell。由于我没有找到方法,所以我尝试将一个只有 "cd ....." 的批处理文件放在 PowerShell 打开的默认文件夹中。 但是,当我执行批处理时,我最终回到了开始的地方。 似乎批处理在不影响 Parentshell 的子 shell 中执行。
如何在 parentshell 中执行批处理文件中的内容?
提前致谢!
你不能。批处理文件由 cmd 执行,而不是 PowerShell,因此它们总会有一个新进程。
通过 PowerShell 脚本,您可以使用点源
. Script.ps1
在你当前的范围内执行脚本,这与cmd默认执行批处理文件的方式最相似。
如果您想在某个文件夹中打开您的 Powershell,您可以在您的 Powershell 配置文件中进行设置。在 Powershell 中,键入 $profile,这将为您提供配置文件的位置。编辑该文件并使用 Set-Location:
Set-Location 'C:\Some\Place'
每次您打开一个新的 Powershell 会话时,Powershell 都会执行您的配置文件脚本中的任何内容。