Powershell 重新排列去重 Windows环境变量
  1gu7btrc2e7Z 5天前 23 0
最近乱搞环境变量,然后有些重复了,遂写个脚本去重下排序下。

环境变量有长度限制,如果超出了,比如SqlServer相关的,将共同路径单独搞个变量声明下,比如

将其路径手动替换成如下,可大幅压缩变量长度

但是,Powershell脚本在获取环境变量时又会将这些恢复成原路径,建议点击编辑文本,将其拷贝下来,替换脚本中的$list变量值。

好了,注意事项说完了,贴下脚本,建议操作前备份下检查下

# 直接获取变量,如%JAVA_HOME%会显示原文,可能导致长度超过2047导致部分失效
$list = $env:Path -split [System.Environment]::NewLine

# 从系统界面拷贝获取示例
# $list="%JAVA_HOME%\bin
# C:\app\YiXinDa\product\21c\dbhomeXE\bin
# %ProgramFiles86%\Common Files\Oracle\Java\javapath
# %windir%\system32
# %windir%
# %windir%\System32\Wbem
# %windir%\System32\WindowsPowerShell\v1.0\
# %windir%\System32\OpenSSH\
# %ProgramFiles86%\Intel\Intel(R) Management Engine Components\DAL
# %ProgramFiles%\Intel\Intel(R) Management Engine Components\DAL
# %MSSQL86%\100\Tools\Binn\"  -split [System.Environment]::NewLine

$uniqueArray = $list | Select-Object -Unique
$uniqueArray = $uniqueArray | Sort-Object
$final = New-Object System.Text.StringBuilder("")
foreach ($item in $uniqueArray) {
    $final.Append($item + ";")
    # Write-Host $item
}
Write-Host $final
[Environment]::SetEnvironmentVariable("PATH", $final , "Machine")

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 5天前 0

暂无评论

推荐阅读
  CkpPPFDNSdNh   2024年08月07日   40   0   0 Windows
  mFjihaSbLS6E   2024年08月07日   33   0   0 Windows
1gu7btrc2e7Z