Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

30日前ファイル名のフォルダを同じフォルダ内にzip圧縮した後、元のフォルダを消す

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

前提として、毎回何かの情報を集める際にYYYYMDDフォルダを作成して、その配下に格納するということをやっておくと、このようなスクリプトで対象を指定しやすくなります。いくつかを列記して1日のどこかで実行するようにスケジュールすれば、ファイルサーバの容量を節約できます。

FOR /F "usebackq" %%a IN (`powershell [DateTime]::Today.AddDays"("-30")".ToString"("'yyyyMMdd'")"`) DO SET yesterday1=%%

"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /c:zip /n:"C:\Users\hoge\Documents\work\%yesterday1%.zip" C:\Users\hoge\Documents\work\%yesterday1%
echo Y|rmdir /s C:\Users\hoge\Documents\work\%yesterday1%
echo work配下の%yesterday1%の圧縮,削除が完了しました %time% >> /path/to/log.txt

"C:\Program Files (x86)\Lhaplus\Lhaplus.exe" /c:zip /n:"C:\Users\hoge\Documents\work2\%yesterday1%.zip" C:\Users\hoge\Documents\work2\%yesterday1% 
echo Y|rmdir /s C:\Users\hoge\Documents\work2\%yesterday1% 
echo work2配下の%yesterday1%の圧縮,削除が完了しました。 %time% >> /path/to/log.txt

.
.
.

ちなみにLhaplusは該当のフォルダが無ければ圧縮ウィンドゥなども立ち上がらないので、動いていないように見えてしまいますが、問題はないです。

削除ということで、念のため、標準出力と標準エラー出力をリダイレクトしてログを取得するには以下のように記述します。

echo Y|rmdir /s C:\Users\hoge\Documents\work\%yesterday1% >> /path/to/delete.log 2>&1

 

 

タイトルとURLをコピーしました