アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは、質問です。
一つのフォルダーの中に300個のファイルと同じ名前のフォルダーを300個作りましたが、このファイルを一気に同じ名前のフォルダーに振分ける方法を教えてください。

(ファイル名と同じ名前のフォルダーを作るのは、ほかの方の質問を見てバッチで行いました。)

◎現状
一つのフォルダの中に300個の画像ファイルとファイルと同名の300個のフォルダが入っています。
これをデスクトップに保存しています。
windows10です。ひとつずつ入れるには時間がかかりすぎます。一気に移動できる方法を教えてください。

◎フォルダーの中身イメージ

<300個の画像ファイル>
○○○○.png
△△△△△.png
××××××.png

<300個のフォルダ->
〇〇〇〇
△△△△△
××××××

質問者からの補足コメント

  • 〇〇〇〇.pngという名前のファイルを→○○○○という名前のフォルダーに移動
    △△△△△.pngという名前のファイルを→△△△△という名前のフォルダーに移動
    ××××××.pngという名前のファイルを→××××××という名前のフォルダーに移動
    これを一個づつやっていると、とても時間がかかるので、一気に選択して一気にフォルダーにふりわけたいのです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/12/08 16:52

A 回答 (4件)

もう既に(手動で)解決済みの様ですが、


今後使うことがあればと思いvbsでコードを作成してみました。

dim dir
dir = inputbox("対象ディレクトリの指定"&vbcrlf&"(絶対パスでの指定)","Input")
if dir <> "" then
 if right(dir,1) <> "\" then
  dir = dir & "\"
 end if
 'オブジェクトの宣言
 dim oFS
 set oFS = createobject("Scripting.FilesystemObject")
 '指定したディレクトリのオブジェクト
 dim obj
 set obj = oFS.GetFolder(dir)
 dim count
 count = 0
 for Each objFile in obj.Files
  '取得したファイルの移動
  oFS.Movefile dir & objFile.Name, dir & Left(objFile.Name, instr(objFile.Name,".")-1) & "\"
  count = count + 1
 Next

 msgbox count & "個のファイルを移動",,"Result"
 set obj = Nothing
 set oFS = Nothing
end if

上記のコードをメモ帳等のエディタにコピーして拡張子を(.vbs)にして保存すれば使用可能です。
実行すると入力窓が出るので移動対象が置かれたディレクトリの絶対パスを入力してください。
指定されたディレクトリ内全てのファイルを移動させます。

※1:保存する際に全角スペースをインデントに置き換えてください
※2:ファイル名に「.」を含んでおらず、同名のフォルダが必ず存在しているのが前提条件です。

以上ご参考まで
    • good
    • 0
この回答へのお礼

細うどんさん、お礼が遅くなって申し訳ございません。
確かに手動でいったん終わりましたが、今後も定期的に数百個単位でファイルをフォルダーに振分ける作業が発生するので、困っていました。

VBSというファイルを見るのも使うのも初めてで、こんな方法があるのか、と驚き、もっと詳しく知りたいという気持ちになりました。
これで、いっぺんに作業できれば、とても助かります。
ありがとうございます。

ただ実際にやってみると、メモ帳を保存してVBSファイルはでき、実行してみましたが、思うようになりません。ディレクトリの絶対パスというのは、
C:\Users\Desktop\folders➡こういうのですか?

上記のように表示されているのをコピーして貼り付けて実行してみましたが、まだうまくできません。多分私がなにか間違っていると思われます。お手すきの時で構いませんのでもし、お時間があれば教えてください。
ありがとうございました。
(※のファイル名の条件はクリアしています。)

お礼日時:2017/12/18 13:37

※この回答は、“締め切られた質問への回答追加”として、2017/12/22 18:45に回答者の方よりご依頼をいただき、教えて!gooによって代理投稿されたものです。


---
絶対パスはルートディレクトリからのフルパスを指すので記載いただいた様な記述で合っています。

うまくできないと有りますが、実行すらエラーで出来ないのか または実行はできても思った通りの動きをしないのかが分からないと対応ができません。

ベストアンサーが選ばれると回答が締め切られるので現状で発生している問題の詳細を再度質問してください。
(回答に関して今回は本サイトの管理者様にご対応頂いています)
    • good
    • 0

自分なら、バッチファイルを作って処理するなあ。



でも、300個程度なら別に苦も無く一つずつやっちゃう♪
一つずつやっても3分もあれば余裕でしょ。
これが数千個とかなら…
…始めからバッチファイルを作ってフォルダを作るところからやる。

・・・
てことで、バッチファイルは示しません。
    • good
    • 0
この回答へのお礼

がんばります

回答ありがとうございました。
急がば回れということですね。
地道にやってみます。
銀鱗さんのように、3分ではできませんでした。

お礼日時:2017/12/08 23:28

Ctrl+Aで選択できないということですか?

この回答への補足あり
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
私の書き方がわかりづらかったと思いますが、ctrl+Aは、全てを選択するショートカットですが、
それとは違い、
300個の画像ファイルを、300個のファイル名と同じ名前のフォルダーに一気にそれぞれ振分ける方法をしりたいのです。
多分、コマンドプロンプトのバッチで行えるのではないかと思いますが、BATファイルの記述内容がわかりません。
もし、ご存知でしたら、教えてください。
よろしくお願いします。

お礼日時:2017/12/08 16:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています