我对PowerShell脚本不太熟悉,但我相信你可以在其中编写普通的C#。如果是这样,那么C#可能会有所帮助。
请注意,有三个PATH环境变量可供选择:给予进程的环境变量,给予用户的环境变量和给予机器自身的环境变量。对于下面的演示代码,我选择了这个过程。
var whichPath = EnvironmentVariableTarget.Process;
string path = Environment.GetEnvironmentVariable("PATH", whichPath);
string [] pathEntries = path.Split(';');
if (pathEntries.Length > 1)
{
// Initialize to the necessary length, for efficiency.
var sb = new StringBuilder(capacity: path.Length);
for(int i = 1; i < pathEntries.Length; ++i)
{
sb.Append(pathEntries[i]).Append(';');
}
sb.Append(pathEntries[0]).Append(';');
Environment.SetEnvironmentVariable("PATH", sb.ToString(), target: whichPath);
}
你知道持有PowerShell中的路径字符串变量的名字吗?为什么不做一个循环来获取字符串的每个字符并将其复制到$ buffer1,直到它到达第一个'“;”'。之后,停止将字符复制到$ buffer1并开始将它们复制到$ buffer2(也就是$ buffer2 + = $ char)。完成循环后,只需将PATH设置为$ buffer2 + $ buffer1 – flen