バッチ処理で伺いたいことがあります。
aaa_001
aaa_002
aaa_003
bbb_001
ccc_001
.
.
.
と複数あるファイルを
namelist.txtにあるリストから取得し
自動でフォルダ作成、移動までをやりたいと思ってい、
下記のバッチ処理でできるかなと試してみました。
@echo off
pushd %~dp0
for /f %%i in (namelist.txt) do mkdir %%i
for /f %%j in (namelist.txt) do move "*%%j*" %%j
exit
しかし、これだと
aaa_011やaaa_111があった場合、
全てaaa_001に入ってしまいます。
この現象を防ぐためにはどのような手段をとればよろしいでしょうか。
ご教授お願い致します。
できればnamelist.txtでリストも作らずにフォルダ作成&移動もできれば一番いいのですが、
それは難しいでしょうか。
No.3ベストアンサー
- 回答日時:
aaa_1 のフォルダに aaa_1_* のファイルだけ
aaa_11 のフォルダに aaa_11_* のファイルだけ
を移動するなら
move "*%%j*" %%j
↓
move "*%%j_*" %%j
No.2
- 回答日時:
現在のやり方では数値に先行"0(ゼロ)"を付けて数値の"桁数"を揃えなければ上手くいかないようですね。
旧ファイル名 新ファイル名
aaa_1_01 aaa_01_01
aaa_1_02 aaa_01_02
aaa_1_03 aaa_01_03
aaa_11_01 aaa_11_01
aaa_11_02 aaa_11_02
aaa_11_03 aaa_11_03
一番右側の2桁には先行"0"が付いているのですから、できなくはないように思われるのですが如何でしょう。
又はnamelist.txtファイルの中のリスト順番を変更すれば対応できできそうに思われます。
旧 新namelist.txt
aaa_1 aaa_11
aaa_11 aaa_1
つまり"1"と"11"の数値のみに注目し、大きい方を先に並べることができたらどうでしょうか。
No.1
- 回答日時:
ご質問に誤りはないでしょうか。
ご提示のディレクトリ自動作成と、ファイルの自動振り分けはwebで探すと沢山出てきます。namelist.txtファイルに...
aaa
bbb
ccc
...
等と入れておくと..."aaa"/"bbb"/"ccc"...ディレクトリが自動的に作成され、aaa_001.jpg, aaa_002.jpg, ...ファイルはディレクトリ"aaa"に、bbb_001.jpg, bbb_002.jpg,...ファイルは"bbb"ディレクトリに移動します。
ご質問にある「aaa_011やaaa_111があった場合」とは、aaa_011.jpg 及び aaa_111.jpgファイルを意味するのだと思いますが、「aaa_001に入ってしまい...」とは"aaa_001"ディレクトリが存在していることを意味しているのでしょうか。
namelist.txtファイルの設定値を明確にしていただくことが必要なのではないかと思うのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlのプログラムについて 3 2021/12/06 15:35
- Excel(エクセル) デスクトップ上に同じフォルダ名とファイル名で保存ができない 1 2021/11/06 11:27
- その他(開発・運用・管理) 【困ってます】.htaccessで特定のディレクトリ内全てへのアクセス制御方法について 2 2021/12/25 12:37
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) フォルダに一括でファイル振り分けるマクロについて 2 2021/10/31 17:44
- Excel(エクセル) ExcelのVBAで同一フォルダ内にあるファイルに同じ処理をしたい 2 2023/09/13 10:10
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
コマンドプロンプトについて。
C言語・C++・C#
-
Javaって使いますか、もう古いですか?C++とどっちがいいですか?分析でC++使う授業ありましたけ
C言語・C++・C#
-
gcc13.2のバグ?
C言語・C++・C#
-
-
4
プログラミング言語の制作方法について
C言語・C++・C#
-
5
C言語 バッファについて。
C言語・C++・C#
-
6
変数名を引数として渡す、アドレスを引数として渡す方法
C言語・C++・C#
-
7
C言語関数違いについて。
C言語・C++・C#
-
8
パイソン。If elseの挙動について教えてください。パソコンは、if else で、まずifに当て
C言語・C++・C#
-
9
VisualStudio2022でC言語プログラムで全角文字を使用すると不明なエラーが表示される
C言語・C++・C#
-
10
MACで動く実行ファイルをWindowsで作る方法(クロスコンパイラ紹介ください)
C言語・C++・C#
-
11
これなにがちがうんですか??
C言語・C++・C#
-
12
double型が正常に認識されていない恐れ
C言語・C++・C#
-
13
C言語について。
C言語・C++・C#
-
14
C言語について。
C言語・C++・C#
-
15
Pythonのre.split()の正規表現の使い方
その他(プログラミング・Web制作)
-
16
正規表現
その他(プログラミング・Web制作)
-
17
C言語について。
C言語・C++・C#
-
18
バッファリングについて。
C言語・C++・C#
-
19
擬似コード 長さがmの配列でなんで For i =0 to m とかかくの?m-1までしかないでしょ
C言語・C++・C#
-
20
C言語って古いですか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
拡張子を元に戻す
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
.txtではなく.logの方が良いの...
-
Windowsのバッチファイルを利用...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
COPYコマンドで結合すると余計...
-
テキストファイルのタブをカン...
-
forfilesで検索したファイルを...
-
EXCEl/VBAで拡張子なしのファイ...
-
bat(バッチ)ファイルで文字入...
-
フォルダ名をファイル名の頭に...
-
コマンドプロンプトで指定した...
-
3つ以上のテキストファイルをコ...
-
Teraマクロで取得した変数を編...
-
【Excel】 VBAを使って毎回名前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
.txtではなく.logの方が良いの...
-
txtのファイルから編集してもい...
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
テキストファイルのファイル名...
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
renameコマンドについて
-
accessでSQL文を使ってcsvファ...
-
コマンドプロンプトでスペース...
-
ファイルを処理中に次の処理に...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
おすすめ情報
ご指摘ありがとうございます。
例えばファイルの種類が
aaa_1_01
aaa_1_02
aaa_1_03
aaa_11_01
aaa_11_02
aaa_11_03
があったとし、
namelist.txtに
aaa_1
aaa_11
の2つのフォルダ名を記載して実行をすると、
ファイルは全て
aaa_1のフォルダに入ってしまうということです。
分かりにくく申し訳ございません。