星期二, 10月 26

批次檔計算檔案大小


因所管理的其中一台電腦檔案會慢慢的變大,所以每次都要手動去做將檔案覆蓋的動作,但是每次都這樣做覺得很懶,所以就想到一個方法就是寫批次檔加上排程,在固定時間檢查檔案是否有變大超過我設定的上限,就產生了以下的程式囉!這支程式是參考網路的作法加上朋友的協助所完成的。其目的就是:

1、檢查檔案。

2、判斷是否有超過所設定的上限。

3、進行檔案的覆蓋。

4、新增工作排程(固定時間執行程式)。

5、打完收工(朋友寫程式寫完的口頭禪)。


::設定不顯示
@echo off
::設定時間
for /f "tokens=1-3 delims=/ " %%a in ("%date%") do (
set myyear=%%a
set mymonth=%%b
set mydate=%%c
)

For /f "tokens=1-3 delims=: " %%a in ("%time%") do (
set mytime=%%a%%b
)
::設定欲搜尋檔案位置
set name=1.zip 
set file=%name% 
::搜尋設定的檔案
for /f "tokens=4" %%s in ('dir /a-d/-c %file% ^| findstr /e %file%') do (
set size=%%s 
)
::計算檔案大小
set /a KB=(%size%/1024) 
set /a MB=(%size%/1024)/1024
::顯示檔案大小
echo 檔案大小為:%KB% KB 
echo 檔案大小為:%MB% MB
::判斷檔案是否大於設定值及複製檔案至目的位置和執行結果輸出文字檔
if /i %MB% GTR 19 (echo 該檔案大於19MB,檔案大小為:%MB% MB,執行日期:%myyear%,%mymonth%,%mydate%^|>>errorcoverlog.txt)
if /i %MB% GTR 19 (copy D:\1.zip .\ )
參考來源:
http://www.robvanderwoude.com/batchfiles.php
http://www.robvanderwoude.com/

沒有留言:

張貼留言

J'House 如圖片及內容轉用 須留言並僅限連結 感謝合作~
轉貼文圖,請保留原圖文~謝謝。