windows_add_path

backup

Windowsの環境変数をバックアップして不測の事態に備えよう - Qiita

@echo off
setlocal enabledelayedexpansion
 
@REM https://qiita.com/seroqn/items/eefb5b8937a99af44584
 
REM バックアップ先のディレクトリ 環境変数 HOME が定義されている前提
set BAK_BASE_DIR=%UserProfile%\.backup\win-envvar
 
 
REM 改行コードCRLF を得る: http://itdiary.info/コマンドプロンプト/post-861/
FOR /f "delims=" i
  SET CR=!CR:~0,1!
)
REM LFの下の空行2行は意味があってやっているので詰めないこと
SET LF=^
 
 
set CRLF=!CR!!LF!
 
 
REM すでにバックアップされているファイルの中で最新のファイルを得る
REM ISSUE: ファイルが存在しないときには警告が出る
for /f a
  goto break
)
:break
 
 
REM B が環境変数の値。
REM 私は両者の間を空白(タブ)で結んだが、好みに応じて適宜変更してください。
set sysenvs=
for /f "tokens=1,3 skip=2" A    A in ('reg query "HKEY_CURRENT_USER\Environment"') do (
  set usrenvs=!usrenvs!!CRLF!B
)
 
 
set qtime=%time:~,2%-%time:~3,2%
set DATETIME=%date:/=-%_%qtime: =0%
 
if not exist %BAK_BASE_DIR% mkdir %BAK_BASE_DIR%
 
REM ファイル中身フォーマットはここを書き換えたら変更できる
echo [ユーザー環境変数]:!usrenvs!!CRLF!!CRLF!!CRLF![システム環境変数]:!sysenvs! > %BAK_BASE_DIR%\%DATETIME%.txt
 
 
REM 前回と差分がない(=環境変数が変更されていない)なら今作ったファイルを削除する
if [%utdfile%] == [] (
  exit /b
)
fc %BAK_BASE_DIR%\%DATETIME%.txt %BAK_BASE_DIR%\%utdfile% > nul
IF %errorlevel%==0 (
  del %BAK_BASE_DIR%\%DATETIME%.txt
)
 

powershell

【PowerShell】環境変数を設定する - ほそぼそプログラミング日記

永続的に設定する

現在のユーザーで使えるユーザー環境変数、またはマシン上のすべてのユーザーで使えるシステム環境変数に値を設定するには次のようにします。

`[System.Environment]::SetEnvironmentVariable(``"MyUserEnv"``,` `"This is my user env."``,` `"User"``)`

この例では、「MyUserEnv」という名前のユーザー環境変数に「This is my user env.」という値を設定しています。
SetEnvironmentVariableメソッドの3つ目のパラメータは、ターゲットとなる環境変数を表しています。
ユーザー環境変数をターゲットとする場合は、“User”、システム環境変数をターゲットとする場合は、“Machine”とします。

ちなみに設定した値はすぐには使えません。
新たにプロンプト画面を起動したりプロセスを起動したあとに使えるようになります。