dポイントプレゼントキャンペーン実施中!

Windowsのバッチファイルで、ファイル名を変更してそのファイルを指定のフォルダに入れると言うものを作りたいです。
現在の手順は以下通りです。

1. Usbメモリ(gドライブ)に入っているA.datというファイルを名前変更でA_日付.datに変更。
2. そのファイルをデスクトップのbackupフォルダにコピー
3. Usbメモリのファイルを削除

これをusbを指してバッチファイルをクリックして完了させるようにしたいです。
どなたかお願いします。

A 回答 (3件)

「1. Usbメモリ(gドライブ)に入っているA.datというファイルを名前変更でA_日付.datに変更。


 この"A_日付.dat"の日付は漢字ではなく、当日の日付だとすると、次のようにすれば
実現できます。

SET YYYYMMDD=%DATE:/=%
REN G:\A.DAT A_%YYYYMMDD%.DAT
COPY G:\A_%YYYYMMDD%.DAT C:\Users\(ユーザ名)\Desktop\
rem DEL G:\A_%YYYYMMDD%.DAT
EXIT

「3. Usbメモリのファイルを削除」
 上の処理で4行目に相当しますが、「rem」で無効にしています。理由は、以下の2点からです。

1.何らかのミスがあった時にUSBメモリーの元データが消える
2.1日1回しか実行しないと仮定すると、ファイル名を変えているので、
 翌日A.DATをUSBメモリーに書き込んでも上書きにならない

 その代わり、定期的に容量を監視して不要
ファイルを消すか、過去データを自動的に消す仕掛けを考える必要があります。

4行目を次のようにすれば、最新の3世代だけUSBメモリーに残ります。

FOR /f "skip=3" %%F in ('dir /b /o-d G:\A_*.DAT') DO DEL G:\%%F

この回答への補足

ありがとうございます。
同じファイル名があった場合にA_日付_2.datとなるようにするにはどうすればいいでしょうか?

補足日時:2014/05/07 10:49
    • good
    • 0

ファイルの移動と言うことだと思うので、move コマンドで出来ます。



move "もとのファイル名をフルパスで" "デスクトップのフォルダーのフルパス\A_日付.dat"
    • good
    • 0

ファイル名を変更するコマンドを使う


コピーコマンドを使う
削除コマンドを使う

で良いんじゃない?
ファイル名も日付も決まっているなら深く考える必要はない。
(ファイルの日付に関する条件がないからなあ
 あってもファイルや作業している日時を取得するコマンドと組み合わせればよいだけのこと)

ってか、これらのバッチ処理で何が分からないのかを示さないと
全部他人任せで後々同じような問題に直面したら、同じように他人に頼らなくてはならなくなります。
それって本当に問題を解決したことになるのかなって思うんですよ。
そんなわけで処理の手順を示してみたんですけど、どうでしょう。
    • good
    • 0

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