%PATH% を;で切り離してそれぞれの要素を別々に処理したいとき、
for %%I in (%PATH%) do echo %%I
で、おおむね良いが、「Program Files」のように空白が入っているとそれが区切りになって
うまく処理されない。PATHに追加するときに、「PROGRA~1」のように短名をつかうとか
"Program Files"とここだけ" "で囲むという見苦しい逃げを打つ手もある。
正攻法では、for がPATHを分解するときだけ、" " で囲って、分解された後は " " をはずして処理する。
一時的に""で囲うのは、PATH要素の区切りである ; を ";" で置換して、最初と最後に " を付ければいい。
for %%I in ("%PATH:;=";"%") do echo %%~I
制御変数Iから" "をはずすのは、%%~I 、はずす必要がなければ、%%I とそのまま使えばいい。