いつもお世話になっております。
バッチの作成方法について教えてください。
tmpフォルダには日々ログファイルが作成されていきます。
ログファイルのファイル名はバラバラですが、必ず20140527のように
yyyymmddの日付が入っています。
3日前のログはもう不要なので、削除したいのです。
(1)本日より3日前の計算はどのようにしたらよいでしょうか?
(2)3日前の日付が入っているファイル名を削除するにはどのようにしたらよいでしょうか?
具体的にプログラムを書いて教えていただけないでしょうか。
お手数をおかけしますが、よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
すみません。
No.2ですが、バッチファイル内の一時ファイルの作成場所を間違えました。正しくは以下の通りです。失礼しました。書き込みの権限の問題です。--------------------------------
@echo off
rem ■ Perlで3日前の日時をファイル出力
perl "delete_old_file.pl" > "%TEMP%\delete_old_file.temp"
rem ■ sedでファイル削除用のバッチに置換
sed -e "{ s/\///gi; s/^\([0-9]\{8,\}\)$/del \/q \1/gi; s/$/*.log/gi; }" "%TEMP%\delete_old_file.temp" > "%TEMP%\delete_old_file.temp.bat"
rem ■ tmpフォルダへ移動
cd /d "tmp"
rem ■ 作成したバッチでファイル削除
call "%TEMP%\delete_old_file.temp.bat"
rem ■ カレントディレクトリの移動
cd /d "..\"
rem ■ 一時ファイルの掃除
del /q "%TEMP%\delete_old_file.temp"
del /q "%TEMP%\delete_old_file.temp.bat"
--------------------------------
No.2
- 回答日時:
私はプログラミングは出来ませんが、もし自分がご質問の処理を行うなら以下のような感じで書きます。
パスやカレントディレクトリの移動は環境に合わせて書き換えて下さい。まず以下の線内の内容を「delete_old_file.pl」としてテキストファイルで保存します。
--------------------------------
sub show_date {
my $tm = shift;
my ($day, $month, $year) = (localtime($tm))[3..5];
printf "%04d/%02d/%02d\n", $year + 1900, $month + 1, $day;
}
# 3日前を表示
show_date(time - 72 * 3600);
--------------------------------
次に以下の線内の内容を、適当な名前を付けてバッチファイルとして保存するか、既存のバッチファイルに組み込みます。
--------------------------------
@echo off
rem ■ Perlで3日前の日時をファイル出力
perl "delete_old_file.pl" > "delete_old_file.temp"
rem ■ sedでファイル削除用のバッチに置換
sed -e "{ s/\///gi; s/^\([0-9]\{8,\}\)$/del \/q \1/gi; s/$/*.log/gi; }" "delete_old_file.temp" > "delete_old_file.temp.bat"
rem ■ tmpフォルダへ移動
cd /d "tmp"
rem ■ 作成したバッチでファイル削除
call "..\delete_old_file.temp.bat"
rem ■ カレントディレクトリの移動
cd /d "..\"
rem ■ 一時ファイルの掃除
del /q "delete_old_file.temp"
del /q "delete_old_file.temp.bat"
--------------------------------
Perlスクリプトの方はそのままの記述で良いですが、バッチファイルの内容は全てパスが通るように書き換えてから実行して下さい。
上記の例は、tmpフォルダの一つ上のフォルダをカレントディレクトリとした場合です。ログファイル名は「yyyymmdd*.log」だった場合の例です。
あと、上記のバッチファイルを実行するには、「Perl」と「sed」がインストールされ、パスが通っている必要があります。
上記のバッチファイルを実行すると、tmpフォルダ内の、3日前の日付から始まるlogファイルが削除されるはずです。
私はプログラミングは出来ませんが、Perlを理解すれば、Perlだけで処理出来るかも知れません。
■ 参考にしたページ「前日・翌日の取得 - Perl表技集」
http://www2u.biglobe.ne.jp/MAS/perl/waza/yesterd …
No.1
- 回答日時:
>具体的にプログラムを書いて教えていただけないでしょうか。
>お手数をおかけしますが、よろしくお願いします
具体的に言語も指定できないような方が、
ファイルを消去するプログラムを作るのは
非常に危険だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba レジストリの値を読み込教えてください教えてください 1 2023/07/14 14:09
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 04:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Excel(エクセル) 1つのファイルを複数のフォルダにファイル名を【明日の日付】にして、コピーしたい 5 2022/12/13 20:11
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- AJAX RPA(PowerAutomate)の実装について 1 2023/07/31 13:46
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
バッチファイルで、iniファイル...
-
コマンドプロンプトで変数が数...
-
コマンドプロンプトでファイル...
-
[DOS] コピー先に同じファイル...
-
バッチコマンドでファイル名の...
-
フォルダ内の更新日時が一番新...
-
ftp処理でmove(移動)を行いたい
-
【vbs】ファイル名の検索と該当...
-
Windowsコマンドプロンプトで、...
-
ExcelVBAのDirでスペース含むフ...
-
word VBA ファイル名 保存
-
コマンドプロンプトでファイル...
-
VBA GetAttrについて教えてくだ...
-
バッチファイルで同一フォルダ...
-
サブフォルダからファイルをコ...
-
■ファイルのリネーム(rename)...
-
【DOSバッチ開発】末尾のタブの...
-
dosのbatファイルでファイル...
-
ファイル名を該当フォルダ内か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
バッチファイルで、iniファイル...
-
バッチコマンドでファイル名の...
-
ftp処理でmove(移動)を行いたい
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
ExcelVBAのDirでスペース含むフ...
-
access,vbaでフォルダ内のファ...
-
DOSのバッチ作成について‐FORの...
-
R18文学賞はファイル名は自由で...
-
ファイル名に ” を使うと エク...
-
【vbs】ファイル名の検索と該当...
-
コマンドプロンプトまたはpower...
-
【Access】エクスポート時のフ...
-
Windowsコマンドプロンプトで、...
-
サブフォルダからファイルをコ...
-
ファイル名を該当フォルダ内か...
おすすめ情報