別のマシンで環境変数を同期させるのは難しいと思いました。1台のコンピューターから設定をエクスポートし、他のコンピューターにインポートしたいだけです。
それは可能だと思いますが、それを行う方法がわかりません。誰か助けてもらえますか?ありがとう。
回答:
RegEditを使用して、次の2つのキーをエクスポートできます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
HKEY_CURRENT_USER\Environment
最初のセットはシステム/グローバル環境変数です。2番目のセットはユーザーレベルの変数です。必要に応じて編集し、.regファイルを新しいマシンにインポートします。
上記で推奨されているPATHだけでなく、コマンドプロンプトからSETコマンドを使用してすべての変数をエクスポートします。
C:\> SET >> allvariables.txt
変数をインポートするには、単純なループを使用できます。
C:\> for /F %A in (allvariables.txt) do SET %A
set > "C:\Users\xx\Desktop\envir variable.txt"
for /F %A in (allvariables.txt) do SET %A
@vincsilverと@jdigitalの回答をいくつかの変更を組み合わせて、
.reg
現在のディレクトリにエクスポートコード:
set TODAY=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%
regedit /e "%CD%\user_env_variables[%TODAY%].reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\global_env_variables[%TODAY%].reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
出力は次のようになります:
global_env_variables[2017-02-14].reg
user_env_variables[2017-02-14].reg
コマンドラインまたはレジストリのいずれかで環境変数にアクセスできます。
コマンドライン
特定の環境変数が必要な場合は、その名前(例:)を入力しPATH
、その後に>
、および書き込むファイル名を入力します。次の例では、PATH環境変数をpath.txtという名前のファイルにダンプします。
C:\> PATH > path.txt
レジストリ方式
Windowsレジストリはすべての環境変数を、どのセットを使用しているかによって異なる場所に保持します。レジストリのインポート/エクスポートコマンドを使用して、他のPCにシフトできます。
システム変数の場合:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
ユーザー変数の場合:
HKEY_CURRENT_USER\Environment
これを行うための私のお気に入りの方法は、ユーザー変数とシステム変数の両方を1つのバックアップファイルに結合するバッチスクリプトとして記述し、environment-backup.bat
ファイルを作成してそれを挿入することです。
@echo off
:: RegEdit can only export into a single file at a time, so create two temporary files.
regedit /e "%CD%\environment-backup1.reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\environment-backup2.reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
:: Concatenate into a single file and remove temporary files.
type "%CD%\environment-backup1.reg" "%CD%\environment-backup2.reg" > environment-backup.reg
del "%CD%\environment-backup1.reg"
del "%CD%\environment-backup2.reg"
これにより、environment-backup.reg
既存の環境変数を再インポートするために使用できるものが作成されます。これにより、新しい変数が追加および上書きされますが、既存の変数は削除されません。
これが私のPowerShellメソッドです
gci env:* | sort-object name | Where-Object {$_.Name -like "MyApp*"} | Foreach {"[System.Environment]::SetEnvironmentVariable('$($_.Name)', '$($_.Value)', 'Machine')"}
それがすること
したがって、これをソースマシンで実行した後、出力をターゲットマシンに転送して実行するだけです(マシンレベルで設定している場合は昇格したプロンプト)