dirコマンドで取り出したファイル名を連結させたい


コマンドプロンプトを使用して、ファイル名を取り出し、空白で区切った一覧として出力させたいです。  
バッチファイルでdirコマンドを使用した時に以下の結果になるようなときに

[code]

    >dir /B
    A.txt
    B.txt
    C.txt   
    
[/code]

以下のスクリプトでスペース区切りのファイル名が出現する想定でした。

[code]

    @echo off  
    for /F %%A in ('dir /B') do (  
        set STR=%STR% %%A  
    )  
    echo "%STR%"
    
[/code]

想定する実行結果：

[code]

    " A.txt B.txt C.txt"
    
[/code]

しかし、上記スクリプトでは何も表示されません。  
スクリプトファイルが間違ってると思われるのですが、どこを間違っているのかが、わからないためご教示いただければと思います。




そのままの例がSETコマンドのヘルプ(`set /?`)に書いてありました。

まず、遅延環境変数の展開をONにしておく(`cmd /V:ON`)  
そうすると以下の様に書けます。

[code]

    @echo off
    set STR=
    for /F %%A in ('dir /B') do set STR=!STR! %%A
    echo "%STR%"
    
[/code]

また、FORの部分は単に`for %%A in (*) do set STR=!STR! %%A` で良いと思います。

でも、このために`cmd /V:ON`をするとコマンドシェルをネストしてしまいますし、  
JScript または、VBScriptを使用するのがいいのではないかと思います。

