• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名の頭3桁が同じフォルダに移動させる)

ファイル名の頭3桁が同じフォルダに移動させる

このQ&Aのポイント
  • ファイル名の頭3桁が同じフォルダに移動させる方法を教えてください。
  • ファイル名の頭3桁が一致した場合、それぞれのフォルダにファイルを移動するbatファイルを作成したいです。
  • 具体的なファイル名とフォルダ名の例を挙げています。

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

  • ベストアンサー
  • UY-Scuti
  • ベストアンサー率85% (17/20)
回答No.4

!STR:~,3! を !STR:~,6! に変えれば良いだけだと思いますが・・・。 こちらでテストした限りではうまくいきます。 変数名 Head3 を Head6 に変えなくてもいけますが、変えるならすべて変えてください。(2か所)

noname#259970
質問者

お礼

ご返信ありがとうございます! 最終的に!STR:~,8!に変えたら希望通りに実行できました! 恐らく数字だけではなく英数字のため (!STR:~,6!)では上手くできなかったのかもしれません、、 ※文字のバイトなのでしょうか?!  5~10を一通りためして8桁がジャストでした。 いずれにしてもコードを作成してくださり、ヒントを与えてくださり、とても感謝しております。 この度はありがとうございました!

その他の回答 (3)

  • UY-Scuti
  • ベストアンサー率85% (17/20)
回答No.3

setlocal enabledelayedexpansion for %%a in (*.txt *.pdf) do ( set STR= %%a set Head3=!STR:~,3! for /d %%b in (!Head3!*) do ( move "%%a" "%%b\" 2>nul ) )

noname#259970
質問者

お礼

ありがとうございます! テスト実行し、3桁の場合はそれぞれのフォルダに入れることができました。 頭から6桁で合わせる場合は、どのように行うのでしょうか。 コマンド内の3を6に変えればいいのかと思い、 変えて実行してみましたが少降順1位のフォルダにすべて移動されてしまいました。 よろければ教えていただけると幸いです。

  • q4330
  • ベストアンサー率27% (768/2786)
回答No.2

move 123* 123_A move 234* 234_B move 345* 3456

noname#259970
質問者

補足

回答ありがとうございます! 私のたとえが不足しておりましたが ファイル名、フォルダ名は必ずしも固定ではありません。。 数百、千近いデータ(txt,pdf)がある感じです。 その一部分のデータを個人フォルダへ移動させ ID(頭6桁:質問は3桁と記載しましたが実際には6桁)を認証して同じIDのフォルダへ移動させることが希望です。 例えば ファイル名 001A01111_(任意のスペースがある文字列)txt 001A01112_(任意のスペースがある文字列)pdf ・ 079501001_(任意のスペースがある文字列)pdf 079501020_(任意のスペースがある文字列)pdf ・ ・ 992Z01001_(任意のスペースがある文字列)pdf フォルダ名 001A01_(任意のスペースがある文字列) ・ 079501__(任意のスペースがある文字列) ・ ・ 992Z01_(任意のスペースがある文字列) バッチ実行後 001A01_(任意のスペースがある文字列)には  └001A01111_(任意のスペースがある文字列)  └001A01112_(任意のスペースがある文字列) 079501__(任意のスペースがある文字列)  └079501001_(任意のスペースがある文字列)  └079501020_(任意のスペースがある文字列) 992Z01_(任意のスペースがある文字列)  └992Z01001_(任意のスペースがある文字列)

回答No.1

"*"(アスタリスクが、ワイルドカード) ですので、 MOVEコマンド(ファイルの移動) にて、 123*.* 234*.* 345*.* をフィルタとして移動先 123_A 234_B 3456 への移動をすればOKです。 MOVEコマンドの説明は https://www.javadrive.jp/command/file/index7.html こんな感じで。 なお、 123*.* *.* と2回使っておりますが、 例えば *.txt *.pdf とファイル名ワイルドカード+拡張子という分け方もできます。 この辺は使い分けて、一番良い方法を使えばよいでしょう!。

noname#259970
質問者

補足

回答ありがとうございます! 私のたとえが不足しておりましたが ファイル名、フォルダ名は必ずしも固定ではありません。。 数百、千近いデータ(txt,pdf)がある感じです。 その一部分のデータを個人フォルダへ移動させ ID(頭6桁の数字:質問は3桁と記載しましたが実際には6桁)を認証して同じIDのフォルダへ移動させることが希望です。 例えば ファイル名 001A01111_(任意のスペースがある文字列)txt 001A01112_(任意のスペースがある文字列)pdf ・ 079501001_(任意のスペースがある文字列)pdf 079501020_(任意のスペースがある文字列)pdf ・ ・ 992Z01001_(任意のスペースがある文字列)pdf フォルダ名 001A01_(任意のスペースがある文字列) ・ 079501__(任意のスペースがある文字列) ・ ・ 992Z01_(任意のスペースがある文字列) バッチ実行後 001A01_(任意のスペースがある文字列)には  └001A01111_(任意のスペースがある文字列)  └001A01112_(任意のスペースがある文字列) 079501__(任意のスペースがある文字列)  └079501001_(任意のスペースがある文字列)  └079501020_(任意のスペースがある文字列) 992Z01_(任意のスペースがある文字列)  └992Z01001_(任意のスペースがある文字列)

関連するQ&A