如何解决从控制台调用ps1文件与VS Code中的F5之间的区别
我正在使用Win10上的Powershell扩展在VS Code中编写一些PowerShell 5.1代码。我有一个.psm1
文件,其中通过main.ps1
指令声明了在using module
中使用的一些类。
当我在main.ps1
文件中按F5时,它运行正常。但是,在控制台窗口中,当我运行.\main.ps1
(RemoteSigned,它将不接受Unrestricted)时,会出现错误,提示找不到类型(类)。
举例说明:
main.ps1
using module ".\classes.psm1" # need using module to pull in the classes,Import-Module does not do that
Import-Module ".\functions.psm1" -Force
$output = 42 | Get-Something
$output
classes.psm1
Class SOSample
{
[int]$Foo
}
functions.psm1
function Get-Something {
param (
[Parameter(Mandatory = $true,ValueFromPipeline = $true)]
[int]
$Integer
)
$retval = New-Object SOSample
$retval.Foo = $Integer
return $retval
}
在main.ps1
中的VS Code中,我可以按F5并得到结果。
当在终端中的VS Code中运行时,当我随后运行.\main.ps1
时,它也会运行。
但是,当我关闭并重新打开文件夹,然后从终端运行.\main.ps1
时,它抱怨找不到类型[SOSample]
。
所以我的问题是:在.ps1文件中按F5与从终端运行.ps1有何不同?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。