for コマンド

ファイルが一定サイズ以上になったら移動させる
@echo on

rem 現在の日付を取得
for /F %%i in ('powershell (Get-Date^).ToString('yyyyMMdd_HHmm_ss_fff'^)') do (
set yday=%%i )

rem ログファイルは下記環境にあるものとします
rem ログファイル場所 D:\log\syslog.log
rem ログファイル退避場所 D:\log\bak
rem 10MB以上になったログファイルを退避させます。GTR 10485760 は10MB(バイト換算)

for %%A in (d:\log\syslog.log) do if %%~zA GTR 10485760 (goto A) else (goto chkErr)
:A
move D:\log\syslog.log D:\log\bak
ren D:\log\bak\syslog.log %yday%syslog.log

:chkErr
goto END
演算子 内容 
EQU 等しい
NEQ等しくない
GTRより大きい
GEQ以上
LEQ以下
LESSより小さい

一定期間を経過した古いファイルを移動する
rem D:\data の下にある*.xmlファイルで120日前のファイルを、削除する
rem 対象ファイルは下記にあるものとし、変数alertに格納します
set alert=D:\Oracle\diag\tnslsnr\Oracle\listener\alert

rem %alert% の下にある*.zipファイルで120日前のファイルを削除する
FORFILES /P "%alert%" /S /M *.zip /D -120 /C "cmd /c del @file"

Oracle11g R2 のリスナーログファイルが一定サイズ以上になったらファイルを移動
@echo off
rem 現在の日付を取得
for /F %%i in ('powershell (Get-Date^).ToString('yyyyMMdd_HHmm'^)') do (
set yday=%%i )

rem Oracle リスナー ログファイル(listener.log)は下記にあるものとし、変数traceに格納します
set trace=D:\app\Oracle\diag\tnslsnr\Oracleserve\listener\trace\
rem 対象ファイル listener.log
set ffile=listener.log
d:
cd %trace%
rem listener.log が50MB以上になる場合はファイルを移動します。
for %%A in (%trace%listener.log) do if %%~zA GTR 52428800 (goto A) else (goto chkErr)
:A

rem リスナーログファイルを強制的にファイル名変更します
move %trace%listener.log %trace%%yday%_listener.log
rem 移動したリスナーログファイルをリネームします
ren %trace%baklistener.log %yday%listener.log

:chkErr
goto END

:END

for コマンド 指定フォルダ下 を圧縮

ファイル名の変数については下記参照

【Bat】コマンドでファイル拡張子を削除してファイル名を取得するバッチの作成方法!「Dir」「For文」「%~」をマスターしよう。
こんにちは!今回はバッチで拡張子を除いたファイル名を取得する方法を紹介していこうと思います。DIRコマンドは、たくさんあるWindowsコマンドの中でも最もポピュラーなコマンドの一つで、ファイルやフォルダの情報をリストアップするのによく使い
rem ファイル名の一覧を取得
rem 下記フォルダ下のフォルダを圧縮
SET ATTFOL=D:\bat\test
rem アーカイバ指定
SET SVNZP=C:\7z2201-extra\x64

for /d /r %ATTFOL% %%A in ( *.* ) do (
%SVNZP%\7za a %ATTFOL%\_attach.7z %%A
)
同じディレクトリ内にあるテキストファイルを for でそれぞれ圧縮ファイルにする
SET SVNZP=D:\soft\7z-extra

for %%A in ( *.txt ) do (
%SVNZP%\7za a %%~nA.7z %%A
)
同じディレクトリ内にある圧縮ファイルを for で一気に解凍
SET CURDIR=C:\arcfol

@echo off
setlocal enabledelayedexpansion
cd %CURDIR%
for /f %%A in ('dir /b *.zip') do (set fileName=%%~nA) & (set fileName2=%%~nxA)  & ( 7za x "!fileName2!" -o!FileName!)
endlocal

コメント