- 締切済み
ファイル名を変更して移動させるコマンド
Windowsのバッチファイルで、ファイル名を変更してそのファイルを指定のフォルダに入れると言うものを作りたいです。 現在の手順は以下通りです。 1. Usbメモリ(gドライブ)に入っているA.datというファイルを名前変更でA_日付.datに変更。 2. そのファイルをデスクトップのbackupフォルダにコピー 3. Usbメモリのファイルを削除 これをusbを指してバッチファイルをクリックして完了させるようにしたいです。 どなたかお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- PXU10652
- ベストアンサー率38% (777/1993)
「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
- notnot
- ベストアンサー率47% (4900/10361)
ファイルの移動と言うことだと思うので、move コマンドで出来ます。 move "もとのファイル名をフルパスで" "デスクトップのフォルダーのフルパス\A_日付.dat"
- Cupper-2
- ベストアンサー率29% (1342/4565)
ファイル名を変更するコマンドを使う コピーコマンドを使う 削除コマンドを使う で良いんじゃない? ファイル名も日付も決まっているなら深く考える必要はない。 (ファイルの日付に関する条件がないからなあ あってもファイルや作業している日時を取得するコマンドと組み合わせればよいだけのこと) ってか、これらのバッチ処理で何が分からないのかを示さないと 全部他人任せで後々同じような問題に直面したら、同じように他人に頼らなくてはならなくなります。 それって本当に問題を解決したことになるのかなって思うんですよ。 そんなわけで処理の手順を示してみたんですけど、どうでしょう。
補足
ありがとうございます。 同じファイル名があった場合にA_日付_2.datとなるようにするにはどうすればいいでしょうか?