吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 705|回复: 9
收起左侧

[其他原创] 【power shell & batch】写了个简单的添加环境变量的脚本

  [复制链接]
hoochanlon 发表于 2024-4-14 17:00

缘起

想使用 notepad 打开记事本一样,打开heynote,结果一时手贱错点删掉了一个用户变量,想不起来是哪一个程序路径了,为此写一个配置用户变量的脚本,方便以后省事。

功能设计

由于我不想管那么多,大多数情况都是加 PATH 上,所以用户、系统环境变量都加上,也没在想着去单独创建变量。

  • 读取计算机/用户 Path,将变量值导出成txt到桌面
  • 保留以前的Path,在这基础上追加,而不是覆盖掉整个Path
  • 再次追加时,不会出现相同的路径重复追加。
  • 追加导出位置提醒(代码效果测试完成后才想起)

效果

示例路径

  • "C:\Program Files\Heynote\"
  • "D:\hitomi\"
  • "C:\Program Files\ToDesk"

附源码

powershell

# 接受用户输入的新路径
$newPath = Read-Host "请输入要添加的新路径"

# 获取桌面路径
$desktopPath = [Environment]::GetFolderPath("Desktop")

# 备份当前用户的 PATH 环境变量到桌面的文本文件
$currentUserPath = [Environment]::GetEnvironmentVariable("PATH", "User")
$currentUserPath | Out-File -FilePath "$desktopPath\user_path_backup.txt"

# 如果新路径不存在于当前用户的 PATH 环境变量中,则添加新路径
if ($currentUserPath -notlike "*$newPath*") {
    $currentUserPath += ";$newPath"
    [Environment]::SetEnvironmentVariable("PATH", $currentUserPath, [System.EnvironmentVariableTarget]::User)
}

# 备份计算机的 PATH 环境变量到桌面的文本文件
$systemPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
$systemPath | Out-File -FilePath "$desktopPath\system_path_backup.txt"

# 如果新路径不存在于计算机的 PATH 环境变量中,则添加新路径
if ($systemPath -notlike "*$newPath*") {
    $systemPath += ";$newPath"
    [Environment]::SetEnvironmentVariable("PATH", $systemPath, [System.EnvironmentVariableTarget]::Machine)
}

# 提示修改完成
Write-Host "环境变量已修改"
Write-Host  "用户变量备份在桌面的 user_path_backup.txt 文件中"
Write-Host  "系统变量备份在桌面的 system_path_backup.txt 文件中"

Write-Host `n;

# 显示修改后的 PATH 环境变量
Write-Host "修改后的计算机 PATH 环境变量:" 
[Environment]::GetEnvironmentVariable("PATH", "Machine")

Write-Host `n;

Write-Host "修改后的用户 PATH 环境变量:" 
[Environment]::GetEnvironmentVariable("PATH", "User")

bat

@echo off

REM 提示用户输入新路径
set /p newPath=请输入要添加的新路径:

REM 获取桌面路径
set "desktopPath=%userprofile%\Desktop"

REM 备份当前用户的 PATH 环境变量到桌面的文本文件
powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')" > "%desktopPath%\user_path_backup.txt"

REM 如果新路径不存在于当前用户的 PATH 环境变量中,则添加新路径
powershell -Command "$currentUserPath = [Environment]::GetEnvironmentVariable('PATH', 'User'); if ($currentUserPath -notlike '*%newPath%*') { $currentUserPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $currentUserPath, [System.EnvironmentVariableTarget]::User) }"

REM 备份计算机的 PATH 环境变量到桌面的文本文件
powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')" > "%desktopPath%\system_path_backup.txt"

REM 如果新路径不存在于计算机的 PATH 环境变量中,则添加新路径
powershell -Command "$systemPath = [Environment]::GetEnvironmentVariable('PATH', 'Machine'); if ($systemPath -notlike '*%newPath%*') { $systemPath += ';%newPath%'; [Environment]::SetEnvironmentVariable('PATH', $systemPath, [System.EnvironmentVariableTarget]::Machine) }"

REM 提示修改完成
echo 环境变量已修改
echo 用户变量备份在桌面的 user_path_backup.txt 文件中
echo 系统变量备份在桌面的 system_path_backup.txt 文件中
echo.

REM 显示修改后的 PATH 环境变量
echo 修改后的计算机 PATH 环境变量:
powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'Machine')"

echo.

echo 修改后的用户 PATH 环境变量:
powershell -Command "[Environment]::GetEnvironmentVariable('PATH', 'User')"
pause

参考文献

免费评分

参与人数 2吾爱币 +7 热心值 +2 收起 理由
xiaoyur + 1 热心回复!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

海是倒过来的天 发表于 2024-4-14 19:20
JAVA的有吗
 楼主| hoochanlon 发表于 2024-4-14 19:23

你可以看这篇帖子,写了有一年多了

[批处理]一键下载安装配置 Java
https://www.52pojie.cn/thread-1767872-1-1.html
(出处: 吾爱破解论坛)
Datch 发表于 2024-4-14 19:58
hjsen 发表于 2024-4-14 20:42
学习,感谢分享
xiaoyaowolf 发表于 2024-4-14 21:48
学习学习,感谢分享心得
centenary 发表于 2024-4-14 23:24
感谢分享
52PJ070 发表于 2024-4-15 06:13
本帖最后由 52PJ070 于 2024-4-15 06:18 编辑

感谢原创分享!
可以运行了。之前下载的文件格式有问题。
Corgibro 发表于 2024-4-15 07:15
梦回一边上班一边架游戏和同事朋友联机的日子
pj52Xiao 发表于 2024-4-15 10:56
不错叻,很细
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 08:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表