batバッチの変数もグローバル変数?

こちらのサイトが詳しいです。

変数って環境変数のことです。環境変数とは文字列。グローバルとは他のプロセスに引き継ぐことができるという意味です。引き継ぐとはプロセスを起動した時点の環境変数の値がコピーされるという意味で、起動後に環境変数を変えてプロセス間でデータの共有をすることはできない。

グローバル、変数と書いたのがややこしいんだろう。

cmd.exe実行中、つまりコマンドプロンプトで、その中でcmdを実行することで環境変数が引き継がれる(グローバル?)ことがわかる。

cmd.exeはコマンドプロンプトのウィンドを共有しますが、ここからnotepad.exeを実行するとメモ帳のウィンドが起動する。notepad.exeでも環境変数aが使える。ただ、notepad.exeは他人が作ったアプリなのでその変数を取り込んで何かすることはできないし、示せないので。

簡易的に別のプロセスが動いているように見えるようにcmdを実行してみます。コマンドプロンプトを共有しないようにstartコマンドを使う。