用Powershell調用DLL文件
來源 https://blog.csdn.net/itanders/article/details/5702771
因為Windows PowerShell能完全訪問.NET Framework,所以我們就可以想象如何用Powershell來調用DLL類庫呢。
這里我們用C#寫一段代碼編譯為DLL文件(這是在做一個數字大小的比較,CompareI是用靜態方法,CompareII則是一般方法)
編譯命令:csc /target:library G:/Math2.cs
namespace Math { public class Methods { public Methods() { } public static int CompareI(int a, int b) { if (a>b) return a; else return b; } public int CompareII(int a, int b) { if (a>b) return a; else return b; } } }
最后我們開始在Powershell環境下調用:
[void][System.Reflection.Assembly]::UnsafeLoadFrom("G:/Math2.dll") [Math.methods]::CompareI(10,2) $a=New-Object Math.Methods $a.CompareII(2,3)
結果為:10 3
[void][reflection.assembly]::LoadFile("D:/VS2008/VC/Math2.dll")
我們必須以這種形式加載DLL庫
[Math.methods]::CompareI(10,2)
我們看到Powershell在調用靜態方法的時候必須使用方括號加上雙冒號“::”的形式來調用靜態方法。
$a=New-Object Math.Methods $a.CompareII(2,3)
而一般方法則不然,必須用New-Object來聲明一個對象引用。
============ End