先写C# ,然后用PowerShell调用C#中的方法:
[DllImport(“kernel32.dll”)]
private static extern int GetPrivateProfileSection(string lpAppName, byte[] lpszReturnBuffer, int nSize, string lpFileName);
private List<string> GetKeys(string iniFile, string category)
{
byte[] buffer = new byte[2048];
GetPrivateProfileSection(category, buffer, 2048, iniFile);
String[] tmp = Encoding.ASCII.GetString(buffer).Trim(‘\0’).Split(‘\0’);
List<string> result = new List<string>();
foreach (String entry in tmp)
{
result.Add(entry.Substring(0, entry.IndexOf(“=”)));
}
return result;
}
引用自:
Read all ini file values with GetPrivateProfileString
不好意思,我没太明白先写C#是什么意思
已更新
你是意思是让我先把这个函数在C#里实现,然后再封装成dll,之后再powershell里调用这个dll,是吗?
不需要封装成dll,PowerShell中可以直接编译和引用C#的。可以参考我之前的例子:调用系统函数锁屏:PowerShell 锁屏 http://www.pstips.net/lock-workstation.html
好的,谢谢,我试一下