• ベストアンサー

ファイル操作の自動化

プログラムに関して素人で、どのカテゴリで質問をしたらよいのかわからなかったので、ここで質問させて頂きます。もし、不適当であるならご指摘ください。 質問の内容は、下記のファイル操作を自動化したいのです。何かのアプリを使えばいいのか、あるいは自分でスクリプトのようなものを組めばいいのかそれすら見当がつきません。 よろしくお願いします。 なお。OSはWinXPです。 1.ひとつのディレクトリ(フォルダ)を指定する。 2.いくつかあるファイルの中から、あるサイズ以上のファイルを抽出する。 3.抽出したファイルをすべて、別のフォルダを指定して移動させる。 4.残ったファイル(あるサイズ以下のファイル)をゴミ箱に移動させる。 5.上記1に戻って、別のフォルダを指定する。 6.上記1から5をループさせて、操作が終了したら終わり。 先に、移動させたいフォルダを指定させておくことができれば、もっとよい。 以上です。 PCを相手に、自分が単純な操作をすることこそ意味がないことだと思います。 ご教示くだされば幸いです。

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

  • ベストアンサー
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

'こんな感じで Limit = 100 * 1024 '削除するファイルサイズの閾値 MoveTo = "C:\Temp\" '削除しないファイルの移動先 '各種オブジェクトの作成 Set FSO = CreateObject("Scripting.FileSystemObject") Set Sh = CreateObject("Shell.Application") '移動先フォルダが無い場合は作成 If Not FSO.FolderExists(MoveTo) Then FSO.CreateFolder(MoveTo) '削除するファイルの一時移動先を作成 tempTrash = MoveTo + "Trash" + Replace(Time, ":", "") + "\" FSO.CreateFolder(tempTrash) 'ドロップされたフォルダ毎にElectFilesを呼び出し For each FolderName In WScript.Arguments ElectFiles FolderName, MoveTo, tempTrash Next '一時移動先のフォルダをごみ箱に移動 Sh.NameSpace(tempTrash).Items.Item.InvokeVerb "削除(&D)" 'サイズによりファイルを振り分け Sub ElectFiles(FolderName, Grater, Less) If Not FSO.FolderExists(FolderName) Then Exit Sub Set Folder = FSO.GetFolder(FolderName) For each File In Folder.Files If File.Size > Limit Then File.Move Grater Else File.Move Less Next End Sub '以上をメモ帳にコピーして拡張子をvbsとして保存してください。 'フォルダをドロップ(複数可)すると、その中のファイルを処理します。 'ファイルサイズの指定は上のほうにあるLimit、移動先フォルダはMoveTo(最後は必ず\に)を直接編集して指定してください(インターフェースは面倒なので省略しました)。 'ElectFilesサブルーチンに少し書き加えれば、ドロップしたフォルダのサブフォルダも潜っていって処理するようになります。 'ごみ箱へ移動ではなく、直接削除ならもう少し簡単になります。 'その気があるなら、適当なインターフェースを作ってLimitとMoveToの内容をレジストリやINIファイルに記録できるようにしてやってください。

pluto999
質問者

お礼

お礼が遅れましてすみませんでした。 ありがとうございました。 ご丁寧に説明してくださって、本当に感謝です。 少しずつ理解していこうと思います。

その他の回答 (3)

  • selju
  • ベストアンサー率57% (100/173)
回答No.3

プログラム言語への敷居が高いと感じる場合は、 日本語プログラミング言語を利用する手もあります。 日本語プログラミング言語「TTSneo」 http://hp.vector.co.jp/authors/VA021321/index.html 基本的なことしか出来ませんが、 上記の内容ぐらいであれば作ることは可能かと思います。 「小学生から使える」フリーソフトなので、 一度試してみては如何でしょうか。

参考URL:
http://hp.vector.co.jp/authors/VA021321/index.html
pluto999
質問者

お礼

ありがとうございます。 お礼が遅れましてすみませんでした。 精進あるのみ・・・です。

noname#5584
noname#5584
回答No.2

VB関連のBBS、ML等で「Dir関数」または、「FSO」(FileSystemObject) をキーワードに検索すれば、有益な情報が得られると思います。 http://fukkey.dyndns.org/cgi-bin/namazu.cgi?idxname=all%2Fvb&idxname=all%2Fcurrent%2Fvb&idxname=all%2Facc&idxname=all%2Fcurrent%2Facc&max=20&sort=date%3Aearly&query=FSO+or+FileSystemObject+or+Dir%B4%D8%BF%F4&submit=%B8%A1%BA%F7&whence=0&reslt=normal&sort=score プログラミング経験が少ない、とのことですので、VBScript よりExcel、または、Access のVBAのほうが扱いが容易だと思います。 > 4.残ったファイル(あるサイズ以下のファイル)をゴミ箱に移動させる。 の処理については、下記のAPIで実現できるはずです。 Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Long

参考URL:
http://www7.big.or.jp/~pinball/discus/vb/new.html
pluto999
質問者

お礼

事情により、お礼が大幅に遅れました。 どうもありがとうございました。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

VBScriptとかJScriptでできますね。

pluto999
質問者

お礼

お礼が遅れまして申し訳ありませんでした。 ありがとうございました。

関連するQ&A

  • ごみ箱に破棄したファイルの操作日時を教えて

    Win 10への移行準備作業段取り中に、PC(Win 7)にあるフォルダーを誤って「ごみ箱」に入れ、その後「ごみ箱」を空にする操作をしてしまいました。 このフォルダーを「ごみ箱」に入れた日時と空にする操作をした日時を知りたいのですが、どうすればこのような履歴を知ることが出来るのか教えてください。 復元フリーソフトを使って復元を試みようとしましたが、ファイル名も定かでないため上記日時から該当するファイルを探そうとしている次第です。また、フォルダーをUSBなどに移動させた場合、その日時を知ることが出来るのでしょうか?。 当方、初心者なので上記のようなことが出来るのか分かりません。よろしくお願いします。

  • batファイルでこのような操作をしたいのですが

    batファイルでこのような操作をしたいのですが どう記述すればいいですか? 一つ目 デスクトップにスタートアップにあったファイルというフォルダを作り スタートアップフォルダにあるものすべてを移動させる 二つ目 デスクトップにあるスタートアップにあったファイルというフォルダの中身すべてを スタートアップに移動しスタートアップにあったファイルというフォルダをゴミ箱に 入れる です お願いします

  • 教えて!ファイルの操作

    計算結果をテキストファイルへ書き込んで出力したいです。 一つのファイルへ出力の場合、ファイル名を指定(output.txt)して、出力は出来ますが、 ループ(i:1から10まで)を使って、ループの循環と共に、(output1.txtからoutput10.txt)のように出力したいです。 ファイル名は変わりますから、上記の操作はできますでしょうか。 教えてください! お願いします。

  • マウス操作だけでファイルを完全に削除する方法

    Windows XP SP3での質問です。 キーボード操作では「Shift+Delete」でゴミ箱に入れずにファイル・フォルダを削除できますが、 マウスの右クリックで「削除(D)」を選択すると、ゴミ箱に入ってしまいます。 Shiftを押しながら右クリックで「削除(D)」を選択すれば削除はできますが、 マウス操作だけで削除する方法はないでしょうか。 できれば、右クリックした際に「削除(D)」とは別に 「ゴミ箱に入れずに削除」とかの表示が出るのが理想です。 エクスプローラの設定を変更して、ゴミ箱に移動しない方法もあるようですが、 それだとすべての場合にゴミ箱に入らなくなってしまうのでNGです。

  • windowsバッチファイルで実行フォルダ移動

    お世話になります。王次郎です。 windows7 バッチファイルで、引数で渡されたファイルまたはフォルダの ディレクトリにカレントディレクトリを変更したいです。 方法を教えてください。 ・ 引数(%1%)が無いときは、カレントディレクトリはバッチファイルのあるディレクトリのままにします ・ 引数(%1%)がフォルダのときは、カレントディレクトリをその引数のフォルダにします CD %1% ・ 引数(%1%)がファイルのときは、そのファイルの置かれているディレクトリを抽出して その抽出したディレクトリに移動します よろしくお願いします。

  • 別のプログラムがこのファイルを開いているので操作を完了できません

    イラストレーターをゴミ箱に移動したいのですが、「別のプログラムがこのファイルを開いているので操作を完了できません」とでて移動ができません。セーフモードで削除や再起動も試してみたのですが駄目でした。恐れ入りますが教えてください

  • どうやっても消えないファイルがある

    タイトルの通りなのですが、消えないファイルがあります。 そのファイルをゴミ箱などに移動しようとすると「ファイルが見つからない、すでに削除されているか移動されている」と出てくるのですがF5で更新しても残っています。 またそのファイルはフォルダに入っているのですが、フォルダごとなら移動できるみたいで、フォルダごと消そうとすると「指定されたファイルが見つからない、パスとファイル名を確認しろ」というエラーが出ます。 今までに強制削除ツールなども試してみましたが消えませんでした。どうすればいいでしょうか?

  • 多数ファイル入りのフォルダを上書きしたら復元不可?

    中にファイルが100以上あるフォルダAがあります。 そのフォルダを「ファイルが1つもないフォルダA」で上書きしたら中にある100以上のファイルはたとえ特殊なソフトを使っても復元不可になるんですか? あるフォルダXに多数ファイルが入っているフォルダAを移動し、別のフォルダでAという名前の空フォルダをつくりフォルダXに移動して上書きしちゃえば X内のフォルダAは空フォルダになりますが、この方法ならその多数ファイルをごみ箱に入れ、「ごみ箱を確実に空にする」で削除した場合と同じ効果があるのか、と思って質問してみました。 MacOSX10.3です。

    • ベストアンサー
    • Mac
  • エクセルファイルにアクセスできなくなった。

    WindowsXP でExcel2002のファイルを別のフォルダーに移動したらアクセス拒否をされた。 エラー表示が、読み取り専用または暗号化されています、が表示されます。 フォルダーの移動の操作をしただけです、その他の操作は以上がないのですが、移動の操作だけで二つのファイルがアクセスできなくなって、削除もできない状態です。 何が悪いのか解りません、できればこのファイルを使いたいのですが、良いアドバイスをお願いします。

  • ゴミ箱に全てのファイルが…元に戻すには?

    大量のファイルの入ったフォルダをドラッグでゴミ箱へ移動させていたら「このフォルダのサイズはゴミ箱の容量を超えています」みたいなウインドウが現れて「それでも削除しますか?」と聞かれて、「はい」と「すべて削除」とあったので、「すべて削除」を選んでしまいました。その移動させた1つのフォルダ内の全てという意味ではなく、何故かコンピューターにある全てのフォルダ?がゴミ箱へ移動してしまった?ようです。これを元に戻すことはできますか?ゴミ箱を開くとマイコンピュータを開いた状態になります。 ちなみにそのゴミ箱を開いた中のファイル削除してみたら本当に消えて無くなってしまいました…。元に戻すという選択ボタンもありません!!助けてください!!お願いします!!

専門家に質問してみよう