• 締切済み

DIRで取得パス名のループ

お世話になります。 バッチファイルであるフォルダーのファイル一覧を別のフォルダに出力する作業を行っています。 下記のようにすると、ファイルがありませんとエラーになりますが、 取得するフォルダの「G%%k¥D0%%l」をたとえば、G2¥D01のようにすると、 うまくうごきます。 取得するフォルダには変数のようなものは使えないのでしょうか。 よろしくお願い致します。 for /L %%k in (2,1,7) do ( for /L %%l in (1,1,10) do ( dir folder1¥G%%k¥D0%%l¥*.txt /b > folder1¥G%%k¥D0%%l¥a.txt ) )

みんなの回答

回答No.2

>フォルダはD01~D10としていたため、D010が存在していませんでした。 なるほど。その場合は for /L %%k in (2,1,7) do ( for %%l in (01 02 03 04 05 06 07 08 09 10) do ( dir folder1¥G%%k¥D%%l¥*.txt /b > folder1¥G%%k¥D%%l¥a.txt ) ) に修正する必要がありますね。

kayakayakaya1
質問者

お礼

ずいぶんログインしていなかったので、気が付かずみません。 そのようなやり方があったんですね。 勉強になりました。 ありがとうございまいた。

回答No.1

試した所、正常に動作しています。 まさか「¥を全角で書いていた」ってオチじゃないですよね? ちゃんと、半角の「\」で書いて下さいね(当サイトでは、半角の「\(バックスラッシュ)」に見えてしまうかも知れません)

kayakayakaya1
質問者

お礼

ご回答ありがとうございます。 >まさか「¥を全角で書いていた」ってオチじゃないですよね? そこは大丈夫でした。 chie65535様のご回答をみて、文字を確認したり、数字を変えて試しましたところ、 まわりました。 結局、原因は、「D0%%l」でした。 フォルダはD01~D10としていたため、D010が存在していませんでした。 申し訳ありません お手数をお掛けいたしました。

kayakayakaya1
質問者

補足

内容に間違いがりました。 ×ファイルがありません 〇指定されたパスがありません 大変申し訳ありません。

関連するQ&A