mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-05-10 02:09:46 +08:00
13e683e7fd
- 基于 IUP GUI 库开发 Windows 环境变量编辑器 - 实现 PATH 变量的加载、编辑、保存功能 - 提供新建、编辑、浏览、删除、上下移动路径等操作 - 添加管理员权限检查,确保系统变量修改权限 - 包含完整的项目构建配置(Makefile)和依赖库
74 lines
3.1 KiB
Batchfile
74 lines
3.1 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
setlocal EnableDelayedExpansion
|
|
|
|
REM 检查管理员权限
|
|
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
|
|
if '%errorlevel%' NEQ '0' (
|
|
echo 正在请求管理员权限...
|
|
echo [注意] 将会弹出一个新窗口进行操作,请留意任务栏或 UAC 提示。
|
|
echo 本窗口即将关闭...
|
|
timeout /t 3 >nul
|
|
goto UACPrompt
|
|
) else ( goto gotAdmin )
|
|
|
|
:UACPrompt
|
|
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
|
|
set params = %*:"=""
|
|
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
|
|
"%temp%\getadmin.vbs"
|
|
del "%temp%\getadmin.vbs"
|
|
exit /B
|
|
|
|
:gotAdmin
|
|
pushd "%~dp0"
|
|
|
|
:menu
|
|
cls
|
|
echo ========================================================
|
|
echo 系统 PATH 环境变量管理器
|
|
echo ========================================================
|
|
echo 1. 导出当前 PATH 到 'path_list.txt' (用于编辑)
|
|
echo 2. 从 'path_list.txt' 导入 PATH (应用更改)
|
|
echo 3. 备份当前 PATH 到带时间戳的文件
|
|
echo 4. 退出
|
|
echo ========================================================
|
|
set /p choice=请输入选项 (1-4):
|
|
|
|
if "%choice%"=="1" goto export
|
|
if "%choice%"=="2" goto import
|
|
if "%choice%"=="3" goto backup
|
|
if "%choice%"=="4" goto end
|
|
goto menu
|
|
|
|
:export
|
|
cls
|
|
echo 正在导出 PATH 到 path_list.txt...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command "$p = [Environment]::GetEnvironmentVariable('PATH', 'Machine'); if ($p) { $p -split ';' | Where-Object { $_.Trim() -ne '' } | Out-File 'path_list.txt' -Encoding utf8; Write-Host '导出完成!您现在可以编辑 path_list.txt' -ForegroundColor Green } else { Write-Host '错误:无法获取 PATH 变量。' -ForegroundColor Red }"
|
|
pause
|
|
goto menu
|
|
|
|
:import
|
|
cls
|
|
if not exist "path_list.txt" (
|
|
echo 错误:未找到 'path_list.txt'!请先导出或手动创建该文件。
|
|
pause
|
|
goto menu
|
|
)
|
|
echo 正在从 path_list.txt 导入 PATH...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command "$lines = Get-Content 'path_list.txt' | Where-Object { $_.Trim() -ne '' }; if ($lines.Count -eq 0) { Write-Host '错误:path_list.txt 为空!' -ForegroundColor Red; exit }; $newPath = $lines -join ';'; Write-Host ('新的 PATH 将包含 ' + $lines.Count + ' 个条目。'); try { [Environment]::SetEnvironmentVariable('PATH', $newPath, 'Machine'); Write-Host 'PATH 更新成功!' -ForegroundColor Green } catch { Write-Host ('更新 PATH 时出错:' + $_.Exception.Message) -ForegroundColor Red }"
|
|
echo.
|
|
echo 请重启您的终端/应用程序以使更改生效。
|
|
pause
|
|
goto menu
|
|
|
|
:backup
|
|
cls
|
|
echo 正在备份 PATH...
|
|
powershell -NoProfile -ExecutionPolicy Bypass -Command "$date = Get-Date -Format 'yyyyMMdd_HHmmss'; $outFile = 'path_backup_' + $date + '.txt'; $p = [Environment]::GetEnvironmentVariable('PATH', 'Machine'); if ($p) { $p -split ';' | Out-File $outFile -Encoding utf8; Write-Host ('备份已保存至 ' + $outFile) -ForegroundColor Cyan } else { Write-Host '错误:无法获取 PATH 变量。' -ForegroundColor Red }"
|
|
pause
|
|
goto menu
|
|
|
|
:end
|
|
exit
|