瀏覽單個文章
tzoyiing
Basic Member
 
tzoyiing的大頭照
 

加入日期: May 2004
您的住址: ROC
文章: 26
引用:
作者PAN_PAN
以我的經驗來說.

應該是 %date% 的格式出了問題.

我的 date format 是設成 USA

但是我一 echo 你的 %date% format 就出現了 7/9
echo %date=~0,4%%date:~5,2%%date:~8,2%

MS 的 Fire structure 不可以用 / 去命名

我的做法是 你需要 FORFILES 這個檔案

FORFILES /P "C:\FROM_FOLDER" /M *.tif /D -90 /c "cmd /c C:\Backup\Job.Scripts\7z\7za a \\TO_SERVER\TO_FOLDER\Backup.7z @file"

RENAME \\TO_SERVER\TO_FOLDER\Backup.7z %date:~-4,4%%date:~-10,2%%date:~-7,2%.7z

FORFILES /P "C:\FROM_FOLDER" /M *.tif /D -90 /c "cmd /c del @file"



第一行: 用 Forfiles 找出 多過 90 天的 tif 檔 然後用 7z 壓縮成 Backup.7z
第二行: 把 Backup.7z 重新命名成今天的日期
第三行: 用 Forfiles 刪除 多過 90 天的 tif 檔

然後把這...


date的部份應該是ok的,因為可以正確抓到如:20080730
至於FORFILES的部份,小弟會再試試看 ^^


引用:
作者PAN_PAN
另外:
>> 其中DEL /Q D:\X\A.idm.200????? 不知為何一直無法正確執行<<

:STEP_5
if errorlevel 0 "GOTO RESULT" & "DEL /Q D:\BACKUP\NET\hosts"

他和其他的 STEP 不太一樣..


因為路徑太長,所以帖上省略成D:\X\,批次檔內的倒是正確的


先感謝PAN_PAN大大的回覆

另外,小弟剛用修改過的批次檔跑過後,出現下面的問題
dos視窗:
c:\>aa.bat
系統找不到指定的路徑。
系統找不到指定的路徑。
系統找不到指定的路徑。
系統找不到指定的路徑。
系統找不到指定的路徑。

紀錄檔(每月資料備份壓縮_20080730.log)
----------------------------------------------------
------------- 20080730 個人資料備份檔 --------------
----------------------------------------------------
開始備份時間:
上午 12:03
----------------------------------------------------
-------- 壓縮 MSN表情符號、大頭貼、動畫快遞 --------
----------------------------------------------------
壓縮完成!!
檔案被鎖住,無法壓縮!!
發生嚴重錯誤!!
----------------------------------------------------
------------- 壓縮 記帳資料(1個檔案)-------------
----------------------------------------------------
壓縮完成!!
檔案被鎖住,無法壓縮!!
發生嚴重錯誤!!
----------------------------------------------------
----------- 壓縮 密碼管理資料(2個檔案)-----------
----------------------------------------------------
壓縮完成!!
檔案被鎖住,無法壓縮!!
發生嚴重錯誤!!
----------------------------------------------------
------------ 壓縮 模擬器資料(2個檔案)------------
----------------------------------------------------
壓縮完成!!
檔案被鎖住,無法壓縮!!
發生嚴重錯誤!!
----------------------------------------------------
------------ 壓縮 hosts 檔案(1個檔案)------------
----------------------------------------------------
壓縮完成!!
檔案被鎖住,無法壓縮!!
發生嚴重錯誤!!
----------------------------------------------------
---------------- 輸出 備份完成 時間 ----------------
----------------------------------------------------
結束備份時間:
上午 12:03
----------------------------------------------------
出現更奇怪的問題.....汗


修改過的批次檔:
@echo off

SET month_log="D:\LOG\每月資料備份壓縮_%date:~0,4%%date:~5,2%%date:~8,2%.log"
SET 7Z="C:\program Files\7-zip\7z"
SET mame="%date:~0,4%%date:~5,2%%date:~8,2%.7z"
SET /a run_step="10"
if exist %month_log% del %month_log%
GOTO CHOICE


:CHOICE
if "%run_step%"=="10" GOTO STEP_0
if "%run_step%"=="11" GOTO STEP_1
if "%run_step%"=="12" GOTO STEP_2
if "%run_step%"=="13" GOTO STEP_3_1
if "%run_step%"=="14" GOTO STEP_4_1
if "%run_step%"=="15" GOTO STEP_5
if "%run_step%"=="16" GOTO STEP_6
if "%run_step%"=="17" GOTO END
GOTO END


:RESULT
if errorlevel 0 ECHO 壓縮完成!! >> %month_log%
if errorlevel 1 ECHO 檔案被鎖住,無法壓縮!! >> %month_log%
if errorlevel 2 ECHO 發生嚴重錯誤!! >> %month_log%
if errorlevel 7 ECHO 壓縮命令列錯誤!! >> %month_log%
if errorlevel 8 ECHO 記憶體不足!! >> %month_log%
if errorlevel 255 GOTO ECHO 使用者中斷!! >> %month_log%
set /a run_step=%run_step% + "1"
IF "%sub_step%"=="13" GOTO STEP_3_2
IF "%sub_step%"=="14" GOTO STEP_4_2
GOTO CHOICE


:STEP_0
SET run_step=10
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------- %date:~0,4%%date:~5,2%%date:~8,2% 個人資料備份檔 -------------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
echo 開始備份時間: >> %month_log%
TIME /T >> %month_log%
GOTO STEP_1


:STEP_1
SET /a run_step="11"
ECHO ---------------------------------------------------- >> %month_log%
ECHO -------- 壓縮 MSN表情符號、大頭貼、動畫快遞 -------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7z% a -mx=9 -t7z D:\BACKUP\MSN\[email protected].%mame% D:\BACKUP\MSN\[email protected]
if errorlevel 0 GOTO RESULT && "RD /S/Q D:\BACKUP\MSN\[email protected]\"
if not errorlevel 0 GOTO RESULT
GOTO STEP_2

:STEP_2
SET /a run_step="12"
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------- 壓縮 記帳資料(1個檔案)------------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7z% a -mx=9 -t7z D:\BACKUP\Charge\MyMoneyData.mdb.%mame% D:\BACKUP\Charge\MyMoneyData.mdb.200?????
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\Charge\MyMoneyData.mdb.200?????"
if not errorlevel 0 GOTO RESULT
GOTO STEP_3_1


:STEP_3_1
SET /a run_step="13"
ECHO ---------------------------------------------------- >> %month_log%
ECHO ----------- 壓縮 密碼管理資料(2個檔案)----------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7z% a -mx=9 -t7z D:\BACKUP\PassWord\my.idm.%mame% D:\BACKUP\PassWord\my.idm.200?????
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\PassWord\my.idm.200?????"
if not errorlevel 0 SET sub_step="13"
GOTO STEP_3_2


:STEP_3_2
SET sub_step=
%7z% a -mx=9 -t7z D:\BACKUP\PassWord\my.apw.%mame% D:\BACKUP\PassWord\my.apw.200?????
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\PassWord\my.apw.200?????"
if not errorlevel 0 GOTO RESULT
GOTO STEP_4_1


:STEP_4_1
SET /a run_step="14"
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------ 壓縮 模擬器資料(2個檔案)------------ >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7z% a -mx=9 -t7z D:\BACKUP\Game\OfflineList_conf.ini.%mame% D:\BACKUP\Game\OfflineList_conf.ini.200?????
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\Game\OfflineList_conf.ini.200?????"
if not errorlevel 0 SET sub_step="14"
GOTO STEP_4_2


:STEP_4_2
SET sub_step=
%7z% a -mx=9 -t7z D:\BACKUP\Game\clrmamepro_cmpro.ini.%mame% D:\BACKUP\Game\clrmamepro_cmpro.ini.200?????
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\Game\clrmamepro_cmpro.ini.200?????"
if not errorlevel 0 GOTO RESULT
GOTO STEP_5


:STEP_5
SET /a run_step="15"
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------ 壓縮 hosts 檔案(1個檔案)------------ >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7z% a -mx=9 -t7z D:\BACKUP\NET\hosts.%mame% D:\BACKUP\NET\hosts
if errorlevel 0 GOTO RESULT && "DEL /Q D:\BACKUP\NET\hosts"
if not errorlevel 0 GOTO RESULT
GOTO STEP_6


:STEP_6
SET /a run_step="16"
ECHO ---------------------------------------------------- >> %month_log%
ECHO ---------------- 輸出 備份完成 時間 ---------------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
ECHO 結束備份時間: >> %month_log%
TIME /T >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
set /a run_step=%run_step% + "1"
GOTO END


:END
SET month_log=
SET 7Z=
SET run_step=
SET sub_step=
舊 2008-07-30, 12:18 AM #5
回應時引用此文章
tzoyiing離線中