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

Cドライブにフォルダ【TMP】があります。このフォルダには毎日、日付けの名称のフォルダ(ddmmyyyy)が一つ作成されます。C:\TMPにあるサブディレクトリを、Dドライブ【BAK】フォルダに移動するバッチファイルを作成したいのですが、どのようなコマンドを記述すればいいのでしょうか。

set dir1=c:\tmp\*
set dir2=d:\bak

move "%dir1%" "%dir2%"

上記では、tmpのファイルのみしか移動出来ません。また、d:\bakに移動したフォルダを定期的に削除したいのですが(作成後、一ヶ月以上経過したフォルダ)どのようにdelコマンドを記述すればいいでしょうか。
宜しくお願いします。

A 回答 (3件)

カレントディレクトリの配下に存在する”作成日の新しいディレクトリ30個以外”を消す場合



FOR /F "skip=30" %i IN ('dir /AD /TC /O-D /B') DO rmdir /S /Q %i

という感じでいいと思います。

もし、「??の使い方が間違っています」と怒られるなら、

FOR /F "skip=30" %%i IN ('dir /AD /TC /O-D /B') DO rmdir /S /Q %%i

で試して下さい。

なお、有無を言わさずに、ディレクトリを消すので、自己責任でお願いします。
    • good
    • 0
この回答へのお礼

アドバイス有難うございました。xcopy後に上記の方法を使用して当初の目的が実現しました。

お礼日時:2004/12/06 17:01

for /D %f in(%dir1%) do move %f %dir2%


でどうでしょう?
試してないので、なんですが。

フォルダ名で削除するバッチについては、最近そういうQ&Aがあったように思います。

この回答への補足

アドバイス有難うございます。forコマンドを試してみましたが〔dir1fの使い方が誤っています〕のMSGでした。そのままコピペしてみたのですが。削除バッチはQ&Aを検索してみます。

補足日時:2004/12/03 13:35
    • good
    • 0

moveコマンドでなく、xcopyコマンドを使えば良いかと思います。



また、1ヶ月経過したディレクトリの削除ですが...
リソースキットのforfilesなどを使わないと、期間経過の判定は難しいでしょう。
標準コマンドだと、特定個数以上のディレクトリを消すという位しか思いつきません。
(最新31個のディレクトリ以外を削除とかはできる)

なお、ディレクトリの削除は、rmdirコマンドです。

この回答への補足

早速のアドバイス有難うございます。最新X個のディレクトリ以外を削除するという指定が出来るのですか。もしご存知であれば、そのコマンドも教えて頂けないでしょうか。宜しくお願いします。

補足日時:2004/12/03 13:24
    • good
    • 0

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