• ベストアンサー

バッチファイルでファイル削除ができない

こんにちは。バッチファイルについてご質問です。 OSはWindows2003 Serverです。SQL Server2008を使用しております。 SQLエージェントを使用して、以下フォルダに、YYYYMMDDhhmmss.bakというタイトルをつけて、デイリーでバックアップを取っております。 C:\backup\log\ 日々ファイルが増えていくので、最新のファイル5個だけ残したいと思い、 以下のバッチファイルを作成しましたが、"20110111130339.bak"が見つかりませんでした。 というエラーが表示されて、ファイルが削除できません。 フォルダ内には、同タイトルのファイルがあります。 for /f "skip=2" %F in ('dir /b /o-n C:\dbbackup\log\??????????????.bak') do del %F よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

cd C:\dbbackup\log してから for /f "skip=2" %F in ('dir /b /o-n C:\dbbackup\log\??????????????.bak') do del %F してみては。

alpha570
質問者

お礼

できました!!! 有難うございました。

関連するQ&A

  • 2008でバッチファイルからバックアップするには?

    お世話になっております。 SQL Server 2008 Expressで、DBのバックアップを定期的に取ろうとしているのですが、うまくいきません。 SQL Serverのタスク等ではなく、バッチファイルを作成し、 タイムスタンプを付けて保存したいと思っています。 例:「TESTDB_YYYYMMDD_HHMMSS.bak」 2005のときは、以下のファイルを用意し、 Backup.bat Backup.sql ---- Backup.bat 内容 ------------------------ sqlcmd -SMYPC\SQLEXPRESS -Usa -iC:\DBBackup\DBBackup.sql -P"" >> C:\DBBackup\backup.log (タイムスタンプを付ける処理) ---- Backup.sql 内容 ------------------------ BACKUP DATABASE [TESTDB] TO DISK = N'C:\DBBackup\TESTDB.bak' WITH NOFORMAT, NOINIT, NAME = N'TESTDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 同様の処理を2008上で行うと、特にエラーメッセージも出ないのですが、 バックアップファイルが出力されません。 (Management Studio Express上でSQLを流すとバックアップファイルが出力されます。) SQLCMDの仕様が変わった為かと思いますが、 解決策をご存知の方いらっしゃいましたら、宜しくお願い致します。

  • 他サーバーにあるファイルコピーのバッチ作成について

    とあるサーバー間で最新のDBBackupファイルのみコピーをしたいと思っています。 (1)のサーバーにあるBackupファイル(3ファイル) 例) 1. xxxxx.20180501.backup 2. xxxxx.20180502.backup 3. xxxxx.20180503.backup ↓ (2)のサーバーに最新のファイル(3.のみ)コピーさせたいです。 (1)にあるファイルは毎日1回4時にBackupされ過去3日分保存されます。 (2)のコピー先ディレクトリは以下の通りです。 C:\DBBACKUP (2)最新のファイルのみ上書きでBackupしたいです 上記の内容のバッチ作成をしたいのですがご教授いただけますか。

  • バッチファイルでのエラー処理の方法を教えてください

    バッチファイルでのエラー処理の方法を教えてください 例えば、以下のようなバッチファイルがあったとき echo ▼ フォルダ名を入れ替えます(処理1) cd "C:\Test1" move Work temp move Work_bak Work move temp Work_bak echo ▼ フォルダ名を入れ替えます(処理2) rem cd "C:\Test2" move Work temp move Work_bak Work move temp Work_bak (処理1)の時に、 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 等のエラーによって、フォルダ名の変更ができなかったとき、 そのエラーがでた以降の処理を行いたくないのですが、 どのように書けばよろしいのでしょうか? 宜しくお願いいたします。 OSはWindows系です。

  • バッチファイルでファイルを置換

    バッチファイルでファイルを置換 あるバッチファイルをダブルクリックすると 特定のファイル名のファイルを置き換えするような事がしたいのです 例えば c:\aaa\test\a.ini d:\test\a.ini というファイルがあったとします どのフォルダ階層にあるかはわからないのですが testフォルダ以下にあるa.iniファイルを a.bakというファイルにリネームして バッチファイルのカレントに置いてあるa.iniファイルを そのフォルダにコピーする test\a.iniファイルがどこにも見つからなければ 該当ファイルが見つかりませんでしたので更新に失敗しました というようなメッセージを出す このようなプログラムをバッチファイルで作成する事は可能でしょうか? バッチファイルの基本コマンドは知っているのですが forとか高度な使い方はよくわからず教えて頂きたいのです よろしくお願い致します

  • バッチファイルのコマンドについて

    Cドライブにフォルダ【TMP】があります。このフォルダには毎日、日付けの名称のフォルダ(ddmmyyyy)が一つ作成されます。C:\TMPにあるサブディレクトリを、Dドライブ【BAK】フォルダに移動するバッチファイルを作成したいのですが、どのようなコマンドを記述すればいいのでしょうか。 set dir1=c:\tmp\* set dir2=d:\bak move "%dir1%" "%dir2%" 上記では、tmpのファイルのみしか移動出来ません。また、d:\bakに移動したフォルダを定期的に削除したいのですが(作成後、一ヶ月以上経過したフォルダ)どのようにdelコマンドを記述すればいいでしょうか。 宜しくお願いします。

  • バッチファイルのコマンド

    なんかバッチファイルで ROBOCOPY D:\RAMImage F:\icache\cache /e こんな感じ↑のバッチファイルを実行するとF:\icache\cacheフォルダの中にもうひとつのcacheフォルダとそれ以下のファイルができてしまうのですがなぜですか? OSはVistaです。 よろしくおねがいします。

  • バッチ処理 特定ファイルを除く削除

    環境:XP pro SP3 「test.txt」を基本ファイルとして残しておき、 変数を使って「test20090401.txt」というように、 バッチ処理をした日付が名前に入るように毎日自動コピー を作成しまして、加えて、8日目以降 1週間前の ファイルを自動削除したいのですが、基本の「test.txt」 は残しておきたいのです。 以下の処理だと「test.txt」まで削除されてしまうのですが、 他フォルダへの移動退避以外に「test.txt」を残し、 1週間前のファイルを削除する方法をご教授頂きたく お願い致します。 set yyyymmdd=%date:~-10% set yyyymmdd=%yyyymmdd:/=% set LOG_COUNT_LIMIT=7 cd c:\temp copy test.txt test%yyyymmdd%.txt for /f "skip=%LOG_COUNT_LIMIT%" %%a in ('dir /b /o-n *.txt') do (del %%a)

  • ログファイルの圧縮がされずに容量が日々増加してしまっています。

    ログファイルの圧縮がされずに容量が日々増加してしまっています。 SQLServer2008のジョブで定期的に以下の3ステップを行っています。 SHRINKFILEで毎回、圧縮できないでいます。 何が原因でしょうか。どのように解決したら良いかわからず投稿させていただきました。 【ステップ1 コマンド】 BACKUP DATABASE [TEST_DB] TO DISK = N'F:\TEST_DBバックアップ\TEST_DBバックアップ.bak' WITH FORMAT, NAME = N'TEST_DB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 【ステップ1 ログ】 BACKUP DATABASE により 22350897 ページが 1706.690 秒間で正常に処理されました 【ステップ2 コマンド】 BACKUP LOG TEST_DB TO DISK = N'F:\TEST_DBバックアップ\TEST_DB_LOGバックアップ.bak' 【ステップ2 ログ】  BACKUP LOG により 473562 ページが 55.721 秒間で正常に処理されました 【ステップ3 コマンド】  DBCC SHRINKFILE(TEST_DB_Log,1024) 【ステップ3 ログ】 圧縮できません。ファイルの末尾にある論理ログ ファイルが使用中です。 稿させていただきました。

  • バッチファイルで定期的にファイル削除を行う方法

    windows2003サーバーでテキストファイルにプログラムの処理結果を記述させています。 そのログファイルを1日に1回削除するバッチファイルを作成しようと考えています。 以下のような動きをするようにするにはどのように記述したら良いのでしょうか。(ログファイルの名前をlog.txtとします。) 1,log.txtを削除 2,0キロバイトのlog.txtを作成 「log.txtを削除」はdelコマンドでできますが、「0キロバイトのlog.txtを作成」でファイル新規作成のコマンドがわかりません。 もし分かる方がいましたら教えてください。

  • バッチファイルを作りたい。

    こんにちは いまある作業をしていて、どうにか自動化できないかと調べていたら、 バッチファイルというものがあると知りました。 バッチファイルに、ファイルをドロップすると、そのファイルの名前のフォルダが作成され、 そのフォルダの中に、B,Cの2つのフォルダ、さらにフォルダBのなかに B1、B2、B3、B4の4つのフォルダが作成される。 というバッチファイルを作りたいです。 また、一度に複数のファイルをドロップしても、動くようにしたいです。 どなたか詳しい方、教えてください。 よろしくお願いします。