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

\\192.168.0.20\User\Desktop\csv\ の中にあるCSVファイルのみ(*.csv)ファイル全てを

\\192.168.0.10\epg_data\input\納品\ の中にコピーするのは出来るのですが、
年(2021)のフォルダ、その中に月日(1022)フォルダを作成してそこにコピーする事は可能でしょうか?
複数のスタッフがそれぞれのPCから実行したいので、
送信元のIPアドレスはbatファイル毎に変えますが、
フォルダが既に存在していたらそのまま入れてくれれば良いのです。
[2021]フォルダの中に、[1022][1023]・・・とフォルダが作られて行き、
本日10/22に3名が実行したら[1022]の中に3つのcsvが入ることになります。

A 回答 (3件)

こんにちは。



例えば、下記の様に、フォルダ名の有無をチェックしてから、フォルダを
作成すれば良いかと。
フォルダ名は、日付を取得して、そこから名前を作れば良いかと。

>本日10/22に3名が実行したら[1022]の中に3つのcsvが入ることになります。
 → ファイル名は、必ず違った物になるという事ですよね?

バッチでフォルダを作る際に存在チェックを行う
https://tech.la-fra.com/2019/01/24/post-484/

Windowsのバッチファイル中で日付をファイル名に使用する
https://atmarkit.itmedia.co.jp/ait/articles/0405 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
実際に試してからと思ったので遅くなりました。

頂いたリンクから、
dateから、10(月)、25(日)を取り出し、「10月25日」という形で
mkdirするようにできました。
2回目の実行だと「既にディレクトリが存在する」エラーになるので、
ディレクトリの存在を確認してから実行するようにしました。

今の状態では、
指定フォルダ直下に日付フォルダを作成していく方式なので、
2021年フォルダに移動するのは、定期メンテと称して手作業にしてます。
年フォルダも自動的に作れれば完璧、
と思ったけど複雑で一旦飛ばしました(><;)
丁寧に作りこめば出来そうですね。

お礼日時:2021/10/26 23:52

解決方法の回答ではありませんが、気になった点を述べます。


全体の考え方としては、No.2さんの回答のとおりなのですが、実務の世界では、不都合が起こることがあります。
例えば、「Aチームの担当者Bさんが、当日の処理を漏らして退社してしまった」「Cチームの担当者Dさんの処理が未了だと判明したが、実は急な病欠で替りに作業できる人がいない」などの理由で、当日の処理が困難なときどうするのかという問題です。
実際にご質問と同じような運用を行って、上記のような問題に遭遇した経験があります。
「どうしても当日処理しないとシステム全体に重大な影響がある」なら、代替手段を用意しておく必要があります。
最悪、翌日や翌営業日でもよいなら、フォルダの日付をどうするのかという問題が生じます。
「CSVファイルの作成作業は完了したが、送信作業が未了の場合」「CSVの作成作業も送信作業も未了の場合」など様々な事態が想定され、元々の送信元フォルダにファイルが作成された日にするのか、実際に送信処理を行った日にするのかというような問題が起こります。
このような事態に対応するための細かいルールを詰めておけば、No.2さんの方法で実現できると思います。
ただ、ファイル属性から作成日を取得してフォルダ名を生成する場合、送信元フォルダ内に複数ファイルがあり、異なる作成日であることも想定されるので、現在日付からフォルダ名を生成する場合より、複雑な処理になると思われます。
    • good
    • 0
この回答へのお礼

重々承知しております。ありがとうございます。
回答者様は、質問者の全状況を知っているわけではないですから
当然可能性としてそのように危惧するのはもっともです。
お気遣いありがとうございます。

今回は、実際の所、A,B,Cのパートが異なり、またBの代わりにAが行うようなイレギュラーな状況が発生しないシンプルな運用体制ですので、
全く大丈夫と判断しております。
つまり、何の見落としも無くNo.2の回答でずばり解決に至った次第です。

お礼日時:2021/10/30 00:07

コピーコマンドで、ワイルドカードを使えばできます。

    • good
    • 0

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