ここから本文です

一つのフォルダに20万件ほどファイルがあります。 それを2万件ずつのフォルダに分...

nin********さん

2019/3/921:20:03

一つのフォルダに20万件ほどファイルがあります。
それを2万件ずつのフォルダに分けたいのですがいい方法はないでしょうか?

OSはWindows10Proです。

補足説明不足で申し訳ありません。分けたいファイルはEメールファイルです。
ファイル名称は全部バラバラです。
そのデータが入っているのがEドライブなので、同じEドライブにフォルダができて移動してくれればと思っています。
フォルダが連番になってくれると助かります。どういう順番で入ってくれても移動してくれればいいと思ってます。

閲覧数:
45
回答数:
3

違反報告

ベストアンサーに選ばれた回答

uso********さん

2019/3/1014:05:23

ファイル種別[ファイル名や拡張子など]
毎にフォルダを分けるべきかと思われる
ので、どんなファイル種別なら どのフォ
ルダに分けたいか要件を明示すべきかと。

少し前にも、ファイルの名前を連番に
変換したいとか言っていた質問者が
ある回答者がテケトーな順番の連番に
したせいで順番が思惑通りじゃないとか
何度も文句言ってたし[質問者が仕様を
明示しないから揉めるんだろけど]。

単にファイル名称の昇順とかで二万件を
一フォルダに分ける位ならPowerShellで
チョチョイなんだろけど。

#PowerShell#
##1..200000|%{ni "test$_.txt" -ItemType file -Force}|Out-Null
$cnt,$fld,$max=0,'GRP',20000
#以下を必要なだけ繰り返し#
$cnt++
if(!(Test-Path ($fld+$cnt))){mkdir ($fld+$cnt)|Out-Null}
ls *.* -file|sort|select -first $max|mv -dest ($fld+$cnt)

  • uso********さん

    2019/3/1017:49:39

    PowerShell で、以下のコードを実行すれば
    E:\ 内のファイル全て[*.*]をGRP1~以下の
    連番フォルダに20000個毎に移動させます。

    E:
    cd \
    $fld='GRP'
    $max=20000
    $fl=ls -file *.*|%{$_.Name}
    $fc=[Math]::Ceiling($fl.Length/$max)
    for($cnt=1;$cnt -le $fc; ++$cnt){
      if(!(Test-Path ($fld+$cnt))){
        mkdir ($fld+$cnt)|Out-Null
      }
      $fl | select -skip ($max*($cnt-1)) -first $max | `
      mv -dest ($fld+$cnt) 
    }

  • その他の返信(3件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

yam********さん

2019/3/1009:21:00

ファイル名に規則性は?

まあオレも、

>20万件程度なら10回の操作で出来るのだから

に賛成だけど。

プロフィール画像

カテゴリマスター

san********さん

2019/3/1007:23:41

バッチで出来ると思うけど。
20万件程度なら10回の操作で出来るのだから作る必要があまり無いですね。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる