从Windows命令提示符执行PowerShell脚本

问题描述 投票:0回答:1

我安装了当前版本的64位Windows 10。

我可以打开Windows PowerShell窗口并输入以下命令来执行我的PowerShell脚本。该脚本执行没有错误。

PS C:\Users\david\Desktop\test> ./messagebox.ps1

我想从Windows命令提示符窗口执行相同的脚本。当我输入follow命令时,我收到显示的错误消息。

C:\Users\david\Desktop\test>powershell -ExecutionPolicy Bypass -file messagebox.ps1
At C:\Users\david\Desktop\test\messagebox.ps1:81 char:14
+ Class Form : System.Windows.Forms.Form
+              ~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [System.Windows.Forms.Form].
At C:\Users\david\Desktop\test\messagebox.ps1:102 char:21
+             return [System.Windows.Forms.MessageBox]::Show($messsage, ...
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [System.Windows.Forms.MessageBox].
At C:\Users\david\Desktop\test\messagebox.ps1:108 char:21
+             return [System.Windows.Forms.MessageBox]::Show($messsage, ...
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unable to find type [System.Windows.Forms.MessageBox].
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TypeNotFound

该脚本包括以下几行,我认为这些行包括正确的程序集。

$n = new-object System.Reflection.AssemblyName("System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")
[System.AppDomain]::CurrentDomain.Load($n) | Out-Null
powershell windows-10-desktop
1个回答
2
投票

您没有发布足够的代码来实际重现该问题,但这对我有用:

Add-Type -AssemblyName System.Windows.Forms | Out-Null
[System.Windows.Forms.MessageBox]::Show("Hello World")

我假设你可以将它扩展到你需要的任何版本的Show()。

另见PowerShell Magazine

© www.soinside.com 2019 - 2024. All rights reserved.