プロが教えるわが家の防犯対策術!

以下の様なソースでバッチファイルを作りました。
簡単に説明すると、
デスクトップPC上の「送信」という共有フォルダにある全てのCSVデータを、
別のPC上の「納品」フォルダに移動するバッチファイルです。
その時、納品フォルダ内に、「2021」という年フォルダを作成し、
「10」という月フォルダを作成し、その中に「1031」という月日フォルダを作成し、
その中に移動するのですが、既にある場合エラーにならない処理にしています。
------------
If not exist \\192.168.1.11\disk1\★納品★\test\%Nen% mkdir \\192.168.1.11\disk1\★納品★\test\%Nen%
If not exist \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki% mkdir \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%
If not exist \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%\%Tsukihi% mkdir \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%\%Tsukihi%

move /y \\desktop-pc\送信\*.csv \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%\%Tsukihi%\
------------
ですが、これだと必ずフォルダを作成してしまいます。
CSVファイルが無かった場合はフォルダ作成をしないようにしたいのですが
どうすれば良いでしょうか?

A 回答 (1件)

末尾に、


rd \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%\%Tsukihi%\
を入れればいいです。フォルダーが空なら削除されます。空で無ければそのままです。

空で無い時にはエラーメッセージが表示されますが、表示したくなければ、
rd \\192.168.1.11\disk1\★納品★\test\%Nen%\%Tsuki%\%Tsukihi%\ 2>NUL
で。
    • good
    • 0
この回答へのお礼

ありがとうございます。
これはつまり、一旦年月フォルダを作成した後に、中にファイルが無かったら削除する、というロジックですよね。
1行追加で済みますね。

この方法が思いつかず、
最初に、if文で元のフォルダのデータ有無をチェックして、何もなかったら処理せず終了、
csvファイルがあったらフォルダ作成処理に進む、ってやり方で作ってみました。
分岐処理の分、数行増えてしまいました。

これは結果的には同じなので好みになりますかね?

お礼日時:2021/11/01 19:08

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