PR

【バッチ】setコマンド:環境変数をわかりやすく3分で解説

Command

setコマンドは、環境変数を操作するためのコマンドプロンプトの基本的なコマンドの1つ。

REM 環境変数の表示
set

REM 特定の環境変数の値を表示
set PATH

REM 新しい環境変数の設定
set MYVAR=HelloWorld

REM 環境変数の値の算術演算
set /a result=5+3

REM ユーザー入力による環境変数の設定
set /p USERNAME=Enter your name: 

参考 コマンドプロンプトとは?

環境変数とは、オペレーティングシステムや実行中のプログラムが参照する、動的に設定される値のことです。例えば、システムのファイルパスやユーザー情報、設定値などがこれに含まれます。

このページではsetコマンドの基本的な使い方を学びつつ、OSにおける環境変数の基本知識についてご説明します。

このページで学べる内容
  • setコマンドの基本的な使い方と構文
  • 環境変数とは何か?
    • 環境変数の設定/表示/削除方法
  • 実用的なサンプルコードとその解説
  • 応用技術:バッチファイルでのsetコマンドの利用

システムエンジニアやプログラマーであれば知らないと恥ずかしい基本知識です。是非最後までご覧ください。

スポンサーリンク

setコマンドとは?

setコマンド

setコマンドは、Windowsのコマンドプロンプトで環境変数を操作するために使用されるコマンドのこと。

REM 環境変数の表示
set

REM 特定の環境変数の値を表示
set PATH

REM 新しい環境変数の設定
set MYVAR=HelloWorld

REM 環境変数の値の算術演算
set /a result=5+3

REM ユーザー入力による環境変数の設定
set /p USERNAME=Enter your name: 

まずはじめにsetコマンドの基本的な構文と、環境変数についての基礎知識を学びます。

setコマンドの基本的な構文

setコマンドの基本的な構文は非常にシンプルです。この構文を使用して、新しい環境変数を作成したり、既存の変数の値を変更したりすることができます。

set [変数名]=[値]

サンプルコード1: 簡単な環境変数の設定

以下のサンプルコードは、新しい環境変数MYVARを作成し、その値をHelloWorldに設定する方法です。

set MYVAR=HelloWorld

このコマンドを実行すると、MYVARという名前の環境変数が作成され、その値としてHelloWorldが設定されます。この変数は、コマンドプロンプトセッション内で参照や変更が可能です。

環境変数とは何か?

環境変数は、オペレーティングシステム(OS)や実行中のプログラムが使用する、動的な設定情報を保持する変数です。これらの変数は、システムやプログラムが正しく動作するための重要な情報を含んでいます。

環境変数説明実際の値の例
PATH実行可能ファイルの検索パスC:\Windows\System32;C:\Windows;C:\Program Files\MyApp\bin
TEMP一時ファイルの格納ディレクトリC:\Users\[ユーザー名]\AppData\Local\Temp
TMP一時ファイルの格納ディレクトリC:\Users\[ユーザー名]\AppData\Local\Temp
USERPROFILEユーザープロファイルのディレクトリC:\Users\[ユーザー名]
SYSTEMROOTシステムのルートディレクトリC:\Windows
環境変数の例

環境変数の役割

  1. システム設定の提供
    • 環境変数は、システムの動作に影響を与える重要な情報を提供します。例えば、PATH環境変数は、OSがプログラムやコマンドを検索するパスを指定します。
  2. プログラム設定のカスタマイズ
    • アプリケーションは環境変数を読み込んで、動作をカスタマイズすることができます。例えば、一部のソフトウェアはTEMP変数を使用して、一時ファイルの保存場所を決定したりします。
  3. セキュリティ情報の管理
    • パスワードやAPIキーなどのセキュリティに敏感な情報を環境変数として管理することがあります。これにより、プログラムコード内に直接これらの情報を記述するリスクを避けることができます。

また、環境変数は他のプログラム言語と同様にグローバル/ローカルの概念があります。setコマンドを利用する際に重要なポイントにもなるので合わせて頭に入れておきましょう。

ポイント 環境変数の種類

  • グローバル変数
    • システム全体で共有される変数。全てのユーザーとプロセスに影響を与えます。
  • ユーザー変数
    • 特定のユーザーのプロファイルに関連付けられる変数。そのユーザーのセッションにのみ影響を与えます。

環境変数の確認と設定

Windowsのコマンドプロンプトでsetコマンドを使用すると、現在のセッションの全ての環境変数を一覧表示することができます。特定の環境変数を表示したい場合は、set [変数名]という形式でコマンドを実行します。

ポイント コマンドの実行手順

  1. コマンドプロンプトの起動:Windowsの検索バーに「cmd」と入力し、コマンドプロンプトを開きます。
  2. setコマンドの実行:コマンドプロンプトにsetと入力し、Enterキーを押します。
C:\Users\[ユーザー名]>set

ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\[ユーザー名]\AppData\Roaming
COMPUTERNAME=[コンピュータ名]
HOMEDRIVE=C:
HOMEPATH=\Users\[ユーザー名]
LOCALAPPDATA=C:\Users\[ユーザー名]\AppData\Local
LOGONSERVER=\\[サーバー名]
PATH=C:\Windows\System32;C:\Windows;C:\Program Files\MyApp\bin
TEMP=C:\Users\[ユーザー名]\AppData\Local\Temp
TMP=C:\Users\[ユーザー名]\AppData\Local\Temp
USERDOMAIN=[ドメイン名]
USERPROFILE=C:\Users\[ユーザー名]
...

環境変数は、set [変数名]=[値]の形式で新しく設定したり、変更したりすることができます。ただし、これらの変更は現在のコマンドプロンプトセッションにのみ適用され、新しいセッションや他のユーザーのセッションには影響しません。

ここからはいくつかのサンプルコードを示しながらsetコマンドの利用と、環境変数の基本理解を深めていきましょう。

サンプルコード2:ローカル変数の設定

ローカル変数は、現在のコマンドプロンプトセッションにのみ影響し、セッションが終了すると消失します。

set LOCALVAR=LocalValue

サンプルコード3:ローカル変数の表示

設定したローカル変数の値を表示するには、以下のコマンドを使用します。

echo %LOCALVAR%

このコマンドは、LOCALVAR変数の値を表示します。

サンプルコード4:グローバル変数の設定

グローバル変数は、システム全体に影響を与えます。これらの変数は、通常システムのプロパティを介して設定されますが、コマンドプロンプトからもsetxコマンドを使用して設定することができます。

setx GLOBALVAR "GlobalValue"

このコマンドは、GLOBALVARという名前のグローバル環境変数を作成し、その値をGlobalValueに設定します。この変更は、新しいコマンドプロンプトセッションや再起動後に反映されます。

サンプルコード5:グローバル変数の表示

グローバル変数は、setコマンドを使用して表示することができます。

set GLOBALVAR

このコマンドは、GLOBALVARという名前のグローバル環境変数の値を表示します(設定されている場合のみ表示されます)。

このように、setコマンドはローカル環境変数の操作に、setxコマンドはグローバル環境変数の操作に使用されます。ローカル変数は現在のセッションに限定されるのに対し、グローバル変数はシステム全体に影響を及ぼす点が大きな違いです。特にグローバル変数を操作する際には、システム全体への影響を理解して慎重に行う必要があります。

応用: setコマンドを使ったスクリプト

setコマンドは、バッチファイルにおいても非常に有用

バッチファイルでは、setコマンドを使用して変数を設定し、条件分岐やループ処理などの高度なスクリプトを作成することができます。

条件分岐のサンプルコード

以下のスクリプトは、ユーザーに数字を入力させ、その数字が特定の値より大きいか小さいかに基づいて異なるメッセージを表示します。

@echo off
set /p USERINPUT=Enter a number: 
if %USERINPUT% leq 10 (
    echo The number is less than or equal to 10.
) else (
    echo The number is greater than 10.
)

このスクリプトでは、入力された数値が10以下かどうかをチェックし、それに応じて異なるメッセージを表示します。

ループ処理のサンプルコード

次に、一定の条件まで数をカウントアップするループ処理のスクリプト例を示します。

@echo off
set /a COUNTER=0
:loop
if %COUNTER% lss 5 (
    echo %COUNTER%
    set /a COUNTER=%COUNTER%+1
    goto loop
)
echo Loop finished.

このスクリプトでは、COUNTER変数が5に達するまで、COUNTERの値を表示し、その後1ずつ増やしてループを続けます。COUNTERが5に達した時点で「Loop finished.」と表示し、ループを終了します。

setコマンドのオプション:まとめ

setコマンドにはいくつかのオプションがあり、様々な目的に応じてうまく使い分ける必要があります。最後に、setコマンドの基本的な使い方をおさらいしつつ、主要なオプションを解説します。

基本 全ての環境変数を表示する

set

このコマンドは、現在のセッションで設定されている全ての環境変数とその値を表示します。

基本 特定の環境変数を表示する

set PATH

このコマンドはPATH環境変数の値を表示します。

基本 環境変数を設定する

set MYVAR=HelloWorld

このコマンドは、新しい環境変数MYVARを作成し、その値をHelloWorldに設定します。

オプション 算術演算(/aオプション)

set /a result=5+3
echo %result%

このコマンドは、8(5+3)という結果をresult変数に設定し、それを表示します。

オプション ユーザー入力(/pオプション)

set /p username=Enter your name: 
echo Hello, %username%!

このコマンドは、ユーザーに名前の入力を求め、入力された名前をusername変数に設定し、挨拶を表示します。

これらのコード例は、setコマンドの様々な使用方法を示しています。これにより、環境変数の表示、設定、算術演算、ユーザー入力の処理、文字列の操作など、多岐にわたるタスクを実行できます。

まとめ setコマンド / 環境変数

setコマンドとは

  • Windowsコマンドプロンプトで使用されるコマンド。
  • 環境変数を表示、設定、または削除するために使用される。
  • バッチファイルやスクリプト内でも利用可能。
  • 文字列操作や算術演算などの拡張機能を提供する。

環境変数とは

  • オペレーティングシステムや実行中のプログラムが使用する動的な設定情報。
  • ファイルパス、システム設定、ユーザー情報などを保持。
  • システム全体(グローバル)または特定のユーザーセッション(ローカル)に適用される。
  • PATH, TEMP, USERPROFILEなどが一般的な例。
REM 環境変数の表示
set

REM 特定の環境変数の値を表示
set PATH

REM 新しい環境変数の設定
set MYVAR=HelloWorld

REM 環境変数の値の算術演算
set /a result=5+3

REM ユーザー入力による環境変数の設定
set /p USERNAME=Enter your name: 

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
CommandIT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました