Powershell 重新排列去重 Windows环境变量

cnblogs 2024-09-14 12:15:00 阅读 74

最近乱搞环境变量,然后有些重复了,遂写个脚本去重下排序下。

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

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

但是,Powershell脚本在获取环境变量时又会将这些恢复成原路径,建议点击<code>编辑文本,将其拷贝下来,替换脚本中的$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]::NewLinecode>

$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")



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。