フォルダ内のjpgとgifを別々のフォルダに分類するBAT

その他

17 Res. 3.1 MONA 2 Fav.

1 :B9四段:2014/08/04 14:39:52 (10年前)  0MONA/0人

①jpgとgifが混じったフォルダ(以下『元フォルダ』)の中に「jpg」フォルダと「gif」フォルダを作成
②元フォルダにあるjpgファイルをすべてjpgフォルダに移動、gifファイルをすべてgifフォルダに移動
③すでにjpgフォルダとgifフォルダが存在する場合は新たにフォルダを作成せずそこに移動させる

という作業ができるバッチファイルのコードを作ってほしい。
コマンドプロンプトからパスを通して使うつもりなので、カレントディレクトで動作するもので。

作ってくれた人には3monaあげます。例によって先着1名で。

2 :QuartzES三段:2014/08/04 15:08:59 (10年前)  0MONA/0人

@echo off
if not exist %1\jpg (md %1 jpg)
forfiles /P %1 /m *.jpg /c "cmd /c move/y %1\@file %1\jpg\@file"
if not exist %1\gif (md %1 gif)
forfiles /P %1 /m *.gif /c "cmd /c move/y %1\@file %1\gif\@file"
@echo on

3 :QuartzES三段:2014/08/04 15:09:33 (10年前)  0MONA/0人

使用法
(そのbatファイルの名前) 『元フォルダ』

4 :QuartzES三段:2014/08/04 15:11:50 (10年前)  0MONA/0人

すみませんmdが間違っていましたすぐ直します

5 :QuartzES三段:2014/08/04 15:13:41 (10年前)  0MONA/0人

md %1 jpg を md %1\jpg
md %1 gif を md %1\gif
に直してください

6 :QuartzES三段:2014/08/04 15:15:43 (10年前)  0MONA/0人

ややこしいので修正済みも載せます:

@echo off
if not exist %1\jpg (md %1\jpg)
forfiles /P %1 /m *.jpg /c "cmd /c move/y %1\@file %1\jpg\@file"
if not exist %1\gif (md %1\gif)
forfiles /P %1 /m *.gif /c "cmd /c move/y %1\@file %1\gif\@file"
@echo on

7 :B9四段:2014/08/04 15:58:08 (10年前)  0MONA/0人

>>6
どうもうまく動作しないみたいだ
元フォルダのディレクトリで動かしてもひとつ上のフォルダから動かしても整理してくれない。

8 :QuartzES三段:2014/08/04 15:59:03 (10年前)  0MONA/0人

すぐ対処します

9 :QuartzES三段:2014/08/04 16:00:21 (10年前)  0MONA/0人

すみませんがOSがXPだと標準で入っていなかったと思われるコマンドを使っていますが、大丈夫なのでしょうか

10 :QuartzES三段:2014/08/04 16:02:59 (10年前)  0MONA/0人

どうやらXPでは作動しても書式が違うようなのですが・・・

11 :QuartzES三段:2014/08/04 16:04:20 (10年前)  0MONA/0人

@echo off
if not exist %1\jpg (md %1\jpg)
forfiles -p%1 -m*.jpg -c"cmd /c move/y %1\@file %1\jpg\@file"
if not exist %1\gif (md %1\gif)
forfiles -p%1 -m*.gif -c"cmd /c move/y %1\@file %1\gif\@file"
@echo on

12 :タロ無し六段:2014/08/04 16:07:33 (10年前)  0.1MONA/1人

MOVEの移動元をワイルドカードで指定して移動先をフォルダ名にすればまとめて移動できなかったっけ・・・

13 :QuartzES三段:2014/08/04 16:11:00 (10年前)  0MONA/0人

>>11はWin2003向けです。
XPならば
ftp://ftp.microsoft.com/Services/TechNet/samples/ps/win98/reskit/scrpting/forfiles.exe
等からforfiles.exeをダウンロードしてsystem32(?)にいれて、>>6のbatを動作させてください

14 :QuartzES三段:2014/08/04 16:34:11 (10年前)  0MONA/0人

>>12 こういうことですか?

@echo off
if not exist %1\jpg (md %1\jpg)
move %1\*.jpg %1\jpg\*.jpg
if not exist %1\gif (md %1\gif)
move %1\*.gif %1\gif\*.gif
@echo on

15 :QuartzES三段:2014/08/04 16:40:56 (10年前)  3MONA/1人

修正しました。おそらく大体のWindowsで動作すると思います

@echo off
if not exist %1\jpg (md %1\jpg)
move %1\*.jpg %1\jpg
if not exist %1\gif (md %1\gif)
move %1\*.gif %1\gif
@echo on

16 :B9四段:2014/08/04 21:56:06 (10年前)  0MONA/0人

>>15
今度はうまくいきました!
ありがとうございます。

17 :QuartzES三段:2014/08/04 22:11:22 (10年前)  0MONA/0人

何度も修正してスレ汚しすみませんでした。
>>12さんの発言のおかげでOSの依存性の強いforfilesを使わないものができました。
3MONAありがとうございます!

お気に入り

新規登録してMONAをもらえた

本サイトはAsk Mona 3.0に移行しましたが、登録すると昔のAsk Monaで遊ぶことができます。

新規登録ログイン