みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

:start
if "%~1"=="" goto end

dir /b %1 >> %TEMP%\List.txt

shift
goto start

:end

投稿日時 - 2013-10-02 12:49:39

QNo.8288520

暇なときに回答ください

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

バッチファイルというのは、実際には、cmd.exe というプログラムが処理の主体です。
そして、右クリックで「送る」とした場合、最終的には、 cmd.exe file1 file2 .... という文が生成されて、これが実行されます。

で、cmd.exe が受け取れる文字数には、上限があります。(おそらく、8196文字)

http://support.microsoft.com/kb/830473/ja

で、この文字列を超えると、それ以降のファイル名が切り捨てられてしまうのだろうと思います。

投稿日時 - 2013-10-02 14:22:35

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問