コマンドプロンプトで環境変数を活用する
この記事では、コマンドプロンプトでの環境変数の活用方法を解説します。環境変数を活用することで、より柔軟で効率的なコマンド操作やバッチ処理が可能になりますので、ぜひ最後までご覧ください。
環境変数とは
環境変数とはOSが保持している変数
で、システムの設定や状態に関する情報を格納しています。パスの指定や、プログラムの動作設定など、さまざまな用途で利用されています。
環境変数の確認方法
コマンドプロンプトでは、set
コマンドを使って現在設定されているすべての環境変数を表示できます。
C:\> set
特定の環境変数のみを表示したい場合は、以下のように変数名を指定します。
C:\> echo %PATH%
よく使われる環境変数
システム情報関連
C:\> echo %OS%
Windows_NT
C:\> echo %PROCESSOR_ARCHITECTURE%
AMD64
C:\> echo %NUMBER_OF_PROCESSORS%
24
ユーザー情報関連
C:\> echo %USERNAME%
YourUsername
C:\> echo %USERPROFILE%
C:\Users\YourUsername
ディレクトリパス関連
C:\> echo %SYSTEMROOT%
C:\Windows
C:\> echo %TEMP%
C:\Users\YourUsername\AppData\Local\Temp
C:\> echo %ProgramFiles%
C:\Program Files
環境変数の活用例
一時ファイルの作成
一時ファイルを作成する際、%TEMP%
変数を使うと便利です。
C:\> echo Hello > %TEMP%\tempfile.txt
C:\> type %TEMP%\tempfile.txt
Hello
カレントディレクトリの操作
%CD%
を使うと現在のディレクトリパスを参照できます。
C:\> echo 現在の場所: %CD%
現在の場所: C:\Users\YourUsername
日付と時刻を利用したファイル名
C:\> echo ログ作成: %DATE% %TIME% > log-%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt
この例では、yyyyMMdd形式の現在の日付でログファイルを作成しています。
バッチファイルでの環境変数の利用
バッチファイル内で環境変数を活用すると、汎用性の高いスクリプトが作成できます。
例:バックアップスクリプト
@echo off
set BACKUP_DIR=%USERPROFILE%\Backups
set BACKUP_FILE=backup_%date:~0,4%%date:~5,2%%date:~8,2%.zip
if not exist %BACKUP_DIR% mkdir %BACKUP_DIR%
echo バックアップを作成中...
powershell Compress-Archive -Path %USERPROFILE%\Documents -DestinationPath %BACKUP_DIR%\%BACKUP_FILE%
echo バックアップ完了: %BACKUP_DIR%\%BACKUP_FILE%
一時的な環境変数の設定
コマンドプロンプトセッション内だけで有効な環境変数を設定するには、set
コマンドを使用します。
C:\> set MY_VARIABLE=Hello World
C:\> echo %MY_VARIABLE%
Hello World
この設定は、コマンドプロンプトを閉じると消えます。
永続的な環境変数の設定
永続的な環境変数を設定するには、setx
コマンドを使います。
C:\> setx MY_PERMANENT_VAR "Permanent Value"
これは現在のユーザーに対する環境変数として設定されます。システム全体の環境変数として設定するには、管理者権限で実行して/m
オプションを追加します。
C:\> setx MY_SYSTEM_VAR "System Value" /m
注意:setx
で設定した環境変数は、新しいコマンドプロンプトを開かないと反映されません。
環境変数の削除
一時的な環境変数を削除するには、以下のようにします。
C:\> set MY_VARIABLE=
永続的な環境変数を削除するには、システムのGUIインターフェース(コントロールパネル→システム→システムの詳細設定→環境変数)を使用するか、以下のコマンドを使います。
C:\> reg delete "HKCU\Environment" /v MY_PERMANENT_VAR /f
応用例:条件分岐での活用
環境変数はバッチファイルの条件分岐でも活用できます。
@echo off
if "%OS%"=="Windows_NT" (
echo Windows NTベースのシステムです
) else (
echo 古いWindowsシステムです
)
if exist %USERPROFILE%\config.txt (
echo 設定ファイルが見つかりました
) else (
echo 設定ファイルがありません
echo Default Config > %USERPROFILE%\config.txt
)
まとめ
環境変数はWindowsコマンドプロンプトの強力な機能のひとつです。システム情報へのアクセス、動的なファイル名の生成、バッチファイルでの条件分岐など、さまざまな場面で活用できます。基本的な環境変数の使い方を覚えておくことで、コマンドプロンプトでの作業効率が大幅に向上します。
ぜひ、この記事で紹介した環境変数を実際のコマンドや簡単なバッチファイルで試してみてください!
Discussion