• ベストアンサー

DOSバッチ処理でファイル名の取得

選択した複数のファイルの名称を取得する目的で、以下の内容のバッチファイルを作成し、(右クリック>送る) で使えるようにしています。 選択するファイル名が少なければ問題なく.txtが作成されるのですが、ファイル数が100を超えると(選択したファイルによって上限が変わる).txtが作成されなくなります。 バッチファイルの内容に問題があるのでしょうか? アドバイスをお願いします。 :start if "%~1"=="" goto end dir /b %1 >> %TEMP%\List.txt shift goto start :end

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

バッチファイルというのは、実際には、cmd.exe というプログラムが処理の主体です。 そして、右クリックで「送る」とした場合、最終的には、 cmd.exe file1 file2 .... という文が生成されて、これが実行されます。 で、cmd.exe が受け取れる文字数には、上限があります。(おそらく、8196文字) http://support.microsoft.com/kb/830473/ja で、この文字列を超えると、それ以降のファイル名が切り捨てられてしまうのだろうと思います。

関連するQ&A