ファイルの作成日で動作するバッチ(その2)

このQ&Aのポイント
  • Windows Server 2008 R2で動作するバッチファイルを作成し、ファイルの作成日に基づいて特定のファイルを別のフォルダに移動させる方法について教えてください。
  • バッチファイルを使用して特定のフォルダ内のファイルを移動する方法を知りたいです。特定のフォルダ内で、特定の条件に基づいてファイルを選択し、別のフォルダに移動させたいです。
  • Windows Server 2008 R2の環境で、バッチファイルを使用して特定のフォルダ内のファイルを移動させる方法を教えてください。移動させるファイルの条件として、ファイルの作成日が24時間以内であることを設定したいです。
回答を見る
  • ベストアンサー

ファイルの作成日で動作するバッチ(その2)

下記のような動作をするバッチを作成したいと思っております。 環境はWindows Server 2008 R2です。 とあるフォルダ「A」があります。 「A」の下には「work」というフォルダと、ランダムな文字列のフォルダが生成されます。 ランダムな文字列のフォルダの下には「xxx.pdf」「xxx.csv」が生成されます。 (xxxにもランダムな文字列が入ります。フォルダとファイルの文字列は別です) 毎日1回バッチファイルを動作させ「A」の配下にあるランダムなフォルダの中にある「xxx.pdf」「xxx.csv」を 別のフォルダ「B」に移動させたいと思っています。 この際にランダムな文字列のフォルダは削除し、ファイルだけを移動させたいです。 また、移動させるファイルの条件として「xxx.pdf」「xxx.csv」のファイル生成日が 24時間以内であることとしたいです。 つまりファイル生成されてから24時間以上経過した「xxx.pdf」「xxx.csv」は処理の対象外になります。(「xxx.pdf」「xxx.csv」を格納しているフォルダもそのまま) また「work」フォルダおよび「work」フォルダ配下のファイルも処理の対象外としたいです。 過去の質問で回答をいただけたのですが下記部分が動作をしておりません。 過去質問:http://okwave.jp/qa/q9185333.html 未動作:対象のファイルが格納されているランダムな文字列のフォルダは削除し、ファイルだけを移動させる。 上記バッチファイルから未動作部分の実装についてご教示いただけますでしょうか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

24時間つまり日単位でいいなら、forfilesコマンドで対象ファイルを選び出すのが簡単です。 forfilesの結果は単純なコマンドしか実行できないので、別のバッチファイルに引き渡すようして、そこでworkの除外や移動を行います。 最後に、空のフォルダを削除すればいいかと思います。

その他の回答 (1)

回答No.1

バッチじゃないとダメですか? windowsのタスクスケジューラを設定すれば、簡単に実現できると思います。 スケジューリングの順番さえ整理しておけば良いのですが・・・

snin1107
質問者

お礼

タスクスケジューラーで出来るというのは知りませんでした。 確認してみます!

関連するQ&A

  • ファイルの作成日で動作するバッチ

    下記のような動作をするバッチを作成したいのですが どのように作ればよいのかわかりません。 ぜひ知見のある方にご教示いただければと思います。 環境はWindows Server 2008 R2です。 とあるフォルダ「A」があります。 「A」の下には「work」というフォルダと、ランダムな文字列のフォルダが生成されます。 ランダムな文字列のフォルダの下には「xxx.pdf」「xxx.csv」が生成されます。 (xxxにもランダムな文字列が入ります。フォルダとファイルの文字列は別です) 毎日1回バッチファイルを動作させ「A」の配下にあるランダムなフォルダの中にある「xxx.pdf」「xxx.csv」を 別のフォルダ「B」に移動させたいと思っています。 この際にランダムな文字列のフォルダは削除し、ファイルだけを移動させたいです。 また、移動させるファイルの条件として「xxx.pdf」「xxx.csv」のファイル生成日が 24時間以内であることとしたいです。 つまりファイル生成されてから24時間以上経過した「xxx.pdf」「xxx.csv」は処理の対象外になります。(「xxx.pdf」「xxx.csv」を格納しているフォルダもそのまま) また「work」フォルダおよび「work」フォルダ配下のファイルも処理の対象外としたいです。 知見のある方、ぜひご教示をお願いいたします。

  • バッチファイルについての質問です

    バッチファイルの質問です。宜しくお願いします。 バッチファイルでテキストファイルの中から指定した文字列が入っている行をとり、指定した文字列を除いた文字列が欲しいのですが、どのようなコマンドを使用すればできるでしょうか? ----------------------- AAAランダム文字列1 BBBランダム文字列2 CCCランダム文字列3 DDDランダム文字列4 EEEランダム文字列5 ----------------------- 上記のようにテキストファイルに書かれていたとして、”ランダム文字列3”という文字だけを取得したいのです。 つたない説明文で申し訳ございませんが宜しくお願いします。

  • バッチファイル作成方法

    バッチファイルを作成してファイルの結合(csvファイル)を行おうとしています。 ですが下記のような状況になってしまいどうにかならないかと思っています。 ***1.csv ***2.csv ***3.csv ***1.csv というような順番でデータがフォルダに転送されきてしまいます。 「1,2,3」までならば結合のバッチファイル作成が可能なのですが、 「1,2,3」の後に再度「1」のファイルが同フォルダにきた時には どのような文にすればイイのかお教え頂けますでしょうか。 下記に結合の文を記させて頂きます。 copy ***1.CSV+***2.CSV+***3.CSV+***_ADDALL.CSV d:\***\***_ALL.CSV 初めてバッチファイルというものを作成するので不明な点が多いのですが、宜しくお願い致します。

  • シンボリックリンク作成のバッチファイル

    親フォルダーに、aフォルダーとbフォルダーが入っています。 aフォルダー配下には、xフォルダーがあり、その中には複数のテキストファイルが入っています。 parent\a\x\test.txt parent\b\ 以下の様なバッチファイルを「送る」に登録しました。 @echo off rem 選択ディレクトリ配下のxディレクトリに移動 cd /D %1\x\ rem カレントディレクトリにあるすべてのファイルを、bディレクトリにコピー for %%i in (*.*) do ( copy "%%i" "..\..\b\" ) これにより、aフォルダーを選択してバッチファイルを実行すると、xフォルダー配下のテキストファイルがbフォルダーの中にコピーされることは確認しました。 ここで、コピーではなく、シンボリックリンク(mklink)を作成したいのですが、引数をどのように設定すればよいでしょうか。いろいろ試しましたがうまくいきませんでした。 ご教示よろしくお願いします。

  • ファイルを振り分けるパッチの作成

    PDFファイルの振り分けを、.datのパッチファイルで自動化したいと考えております。 (動作環境はWindows10です) デスクトップの振り分け用のフォルダに入れた複数のPDFファイルは、 下記のように名前が付けられております ◯◯ xxxxx.pdf ◯◯→取引先会社名などの文字列 xxxxx→アルファベットと数字を組み合わせた5桁の文字列 「◯◯」と「xxxxx」の間には、半角スペースが入っております。 Xサーバー内に「A」というフォルダがあり、 さらにその中に「xxxxx 〇〇 △△△」というフォルダがあり、さらにその中の「B」というフォルダ内に、振り分け用のフォルダからPDFファイルを移動させたいと思っています。 (「△△△」は、任意の文字列のため、フォルダによっては無い場合もあります) そのため、振り分け用フォルダ内にある複数のPDFから「xxxxx」という文字列を「A」内で検索し、ヒットしたフォルダ内のさらに中にある「B」というフォルダにファイルを移動(同じものがあった場合は上書き)したいと思っています。 パッチファイルの作成は勉強中のため、情報に不足がありましたら申し訳ございません。 どなたかお力になってくださる方、よろしくお願いいたします。

  • バッチファイルでファイル名に文字列を挿入したい。

    フォルダにあるファイル全てに対して、ファイル名の先頭に文字列を挿入するバッチファイルを作っています。 対象のファイルは、主にエクセル、ワード、パワーポイント、PDFですが、ファイルの種類に関係なく、全てのファイルに対して、ファイル名の先頭に文字列を挿入したいです。 @echo off for %%i in (*) do ren "%%i" "【文字列】%%i" pause として文字列の挿入自体はできました。 しかし、このファイルを2回実行すると、ファイル名の先頭に【文字列】【文字列】と重複して挿入されてしまうので、すでに挿入済みのファイルに対しては実行しないようにしたいのですが、うまくいきません。 また、サブフォルダ内にあるファイルに対しても同様の処理を適用したいです。 どのように記述すればよいでしょうか。 リネームソフトを使えればよいのですが、フリーソフト等はインストールできない環境ですので、できればバッチファイルを記述して対応したいのです。 OSはウインドウズ7です。

  • バッチファイルが作成可能でしたら教えてください

    指定フォルダの最新のファイルを (グローバル)ホットキーを押すだけで 移動、もしくは削除したいのですがバッチファイルで可能でしたら 作り方を教えてください

  • バッチファイル作成で困っています

    ルートディレクトリの直下に、たくさんのフォルダが存在し、 すべてのフォルダ名がyyyymmdd形式の日付になっています。 例えば c:\20211215 c:\20220123 c:\20220302 c:\20220419 c:\20220524 ちなみに、本日の日付を表すフォルダ名が一番数字が大きいものです。(つまり未来の日付のものはありません) バッチファイルに引数を入れて、引数で指定した数字以降のものだけ すべてc:\workの下にフォルダごとxcopyするバッチファイルは どう作れば良いのでしょうか。 例えば、引数が20220225ですと、上記の例ではxcopyの対象は c:\20220302 c:\20220419 c:\20220524 の3つになります。 for /d ループになるように思いますが、お知恵(サンプル)をいただきたく。

  • バッチファイルの作成

    お世話になっております。 バッチファイルの作成方法について、只今勉強中です。 現在、毎日行われている作業をバッチファイルで自動化が出来ないか検討しておりますが、バッチファイルの編集に苦戦していて困っております・・・ ---実行したい事--- 0.以下、作業の流れをコマンドプロンプト上で表示する。 1.C:\ツール\batというフォルダに移動する。 2.batフォルダに新しく「file」というフォルダを作成 3.batフォルダ内には「bat_YYYY/MM/DD.txt」という日付のテキストがあり、該当する日付のテキストをコピーしてfileフォルダへ貼り付ける。 4.fileフォルダへ移動する。 ---終了--- 手順を全部書いてしまっているのですが、途中まではバッチファイルの編集をする事が出来ました。しかし、正解しているか不安です。 ご教授の程、宜しく御願い致します。

  • バッチでファイルのコピーを行いたい

    バッチを利用してファイルのコピーを実施しようとしておりまあす あるフォルダ内にあるファイルをすべて別のフォルダに移動したいのですが、 このとき、 ・コピー対象のファイルは、MAXで11ファイル(cpfile1.csv-cpfile11.csv)ですが、すべて存在するとは限らない ・コピーに失敗したファイルは、あと2回コピーのリトライをする (MAX3回コピーを実施する) ・途中でコピーが失敗したファイルがあったとしても、フォルダ内のすべてのファイルに対してコピーを行う copy /Y c:A\cp_from\*.csv c:A\cp_to\*.csv で行おうとしたのですがこの場合、2回のリトライを行う方法が不明でした for文を利用して行うべきなのでしょうか? またその時にはどのように書けばよいのでしょうか> お分かりになられる方がおりましたら、ご教授お願いいたします

専門家に質問してみよう