>>979
>>981
>>984
あああああああ、ごめんなさい。
悪いのはSHIFTじゃなくてIFの使い方でした。
---------------------------------
:loop
echo %1
shift
if not "%1" == "" goto loop
pause
---------------------------------
こういう書き方をしていて、パスにスペースのないファイルだとパラメータが
複数でもうまく動いていたので、てっきりSHIFTが悪いんだと思ってました。

if文のところを
if not %1 == "" goto loop
と書き直したところ、うまく動作してくれるようになりました。

お騒がせしてすみません、お返事ありがとうございました。
WSH勉強してみます。