我开始使用PowerShell类,并且尝试使用ISE遵循此简短教程:
https://devblogs.microsoft.com/scripting/powershell-5-create-simple-class/
这是该页面上的示例代码:
Class Car
{
[String]$vin
static [int]$numberOfWheels = 4
[int]$numberOfDoors
[datetime]$year
[String]$model
}
这是要运行的命令:
$Chevy = New-Object Car
但是,我遇到一个错误:
新对象:找不到类型[汽车]:验证是否已加载包含该类型的装配体。
这似乎很奇怪。 PowerShell不能找到此类吗? ISE IntelliSense也无法找到它。
我要做什么才能使它运行?
答案 0 :(得分:1)
在编写类或函数之类的自定义代码时,外壳程序必须知道这些声明才能使用它。
启动powershell时,它附带了预加载的Types和cmdLets。这就是为什么您可以使用以下命令的原因:
get-command
或建立一个字符串
[string]$mystring
要使用您的类,您将必须使用F5运行类声明。然后,您可以在此shell中实例化该对象:
$mycar = New-Object Car
如果要在多个脚本中使用此类,可以将其另存为.ps1文件并运行,然后在脚本中使用它:
. <filepath>\<filename>.ps1
. C:\Car.ps1
$myCar = New-Object Car
Use you Car class in the shell
或者您可以编写模块并将其导入脚本中:
import-module <filePath>\myscript.ps1
$myCar = New-Object Car
希望这会有所帮助:)
答案 1 :(得分:1)
您的屏幕快照显示您正在尝试从ISE集成的控制台实例化Car
类,而 definition 类包含在脚本标签。
因此,必须先首先 运行脚本标签中的代码才能定义类,在最简单的情况下,请按< kbd> F5 。
一般来说,使用Visual Studio Code作为PowerShell代码的编辑器,从PowerShell ISE切换到PowerShell extension 是值得的,因为这是以后所有开发工作的地方会去; 如果您打算使用多平台版本的PowerShell Core ,则 ISE甚至都不可行。