等价于Powershell中bash的`source`命令?


15

要逐行运行bash脚本(例如,以保留环境变量),请执行以下操作:

$ . myscript.sh

要么:

$ source myscript.sh

我有一个PowerShell脚本,除其他外,该脚本通过称为的函数设置提示的值prompt。仅运行此脚本(“。\ myscript.ps1”)不会更改提示。但是,作为命令逐行运行函数。

所以我真正需要的是类似于sourcePowerShell 的命令。可能吗?

编辑:应该将此帖子移到Stackoverflow吗?

说明1:由于我仅在需要的基础上运行此功能(即,不是针对每个Powershell会话和/或始终如此),因此我不想存储在我的Powershell启动配置文件中。


注意:您的两个Bash命令是不同的。您可能不是要在第二个空格中加上点号,或者要使它们都在脚本名称的开头都带有“ ./”(当前目录)。
暂停,直到另行通知。

修复了此问题(通过删除了点)
Sridhar Ratnakumar,2009年

Answers:


29

您也可以在PowerShell中“ 点源 ”。您只需要确保指定完整路径即可。因此,如果要加载的脚本在本地目录中,则可以执行以下操作:

PS C:\>. .\myscript.ps1

这是正确的答案:) PowerShell中的点源代码的工作方式几乎与Bash中一样
Jaykul,2009年

我不知道你能做到这一点。很好
DaveParillo

哇!我怎么没尝试过呢?:)
Sridhar Ratnakumar 09年

1
无论如何,这可以使用现有的cmd脚本来完成吗?cmd脚本执行是否导致Powershell环境被修改?
豌豆豆

1
如果您需要运行.bat文件并修改环境怎么办?
克洛伊(Chloe)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.