引用:
|
作者PAN_PAN
我的意思是說
:STEP_5
if errorlevel 0 "GOTO RESULT" & "DEL /Q D:\BACKUP\NET\hosts"
但是你其他的 STEPs
:STEP_2
if errorlevel 0 "GOTO RESULT && DEL /Q D:\BACKUP\Charge\MyMoneyData.mdb.200?????"
看的出來嗎? 我不知道要怎麼解釋!!
另外找不到 系統找不到指定的路徑, 可能是的
SET month_log=
SET 7Z=
SET run_step=
SET sub_step=
這些東西寫錯地方了
|
&&的部份小弟已經改用||來取代,目前已可以正確刪除檔案了
至於底下set的部份則全部刪除掉了 ^^
引用:
|
作者Crazynut
看得眼花撩亂…
建議您可以仿照老式的程式設計技巧,設定偵錯點。
在批次檔內,先把echo off那一行去掉(不去掉就看不到哪一行指令正在執行),然後加入pause指令(可以按任意鍵再繼續),來仔細瞧一瞧,倒底是那一行執行出了問題,再鎖定那一行的語法、使用到的參數來推敲錯誤所在。
Good Luck
|
已改成@echo on了,偵錯點??....額,有點不明白
早上有試著加入pause指令,已經抓出幾個問題出來..
之前貼的批次檔是太亂了,已加上注記便於查看 ^^
再次大改后,情況有所改善,不過還是有些問題
1.dos視窗內跑完批次檔后,發現7z完全不會執行,會出現如下的錯誤:
============================
C:\>Z\BACKUP\PassWord\my.idm.20080730.7z D:\BACKUP\PassWord\my.idm.200?????
系統找不到指定的路徑。
============================
可若將該行剪下單獨執行卻又可以正確跑完,不知是何緣故?! @@"
2.另外紀錄檔的部份也有問題,7z沒執行成功卻出現一堆錯誤&正確的代碼?!
----------------------------------------------------
------------- 20080730 個人資料備份檔 --------------
----------------------------------------------------
開始備份時間:
上午 09:47
----------------------------------------------------
-------- 壓縮 MSN表情符號、大頭貼、動畫快遞 --------
----------------------------------------------------
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
----------------------------------------------------
------------- 壓縮 記帳資料(1個檔案)-------------
----------------------------------------------------
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
----------------------------------------------------
----------- 壓縮 密碼管理資料(2個檔案)-----------
----------------------------------------------------
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
----------------------------------------------------
------------ 壓縮 模擬器資料(2個檔案)------------
----------------------------------------------------
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
----------------------------------------------------
------------ 壓縮 hosts 檔案(1個檔案)------------
----------------------------------------------------
發生嚴重錯誤!!
檔案被鎖住,無法壓縮!!
壓縮完成!!
----------------------------------------------------
---------------- 輸出 備份完成 時間 ----------------
----------------------------------------------------
結束備份時間:
上午 09:47
----------------------------------------------------
批次檔:
rem ---===---===---===--- 每月資料備份壓縮的批次檔 ---===---===---===---
@echo on
rem --- 指定紀錄檔的名稱與路徑 ---
SET month_log=D:\log\每月資料備份壓縮_%date:~0,4%%date:~5,2%%date:~8,2%.log
rem ------------------------------
rem --- 指定7-ZIP所在的目錄與檔名 ---
SET 7Z="C:\Program Files\7-Zip\7z.exe"
REM -------------------------------------
SET /a run_step=0
if exist %month_log% del %month_log%
GOTO CHOICE
rem --- 紀錄檔的檔頭 ---
:STEP_1
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%
set /a run_step=%run_step% + 1
GOTO CHOICE
rem --------------------
:STEP_2
ECHO ---------------------------------------------------- >> %month_log%
ECHO -------- 壓縮 MSN表情符號、大頭貼、動畫快遞 -------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7Z% a -mx=9 -t7z D:\BACKUP\MSN\
[email protected].%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\MSN\
[email protected]
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_3
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------- 壓縮 記帳資料(1個檔案)------------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7Z% a -mx=9 -t7z D:\BACKUP\Charge\MyMoneyData.mdb.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\Charge\MyMoneyData.mdb.200?????
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_4_1
ECHO ---------------------------------------------------- >> %month_log%
ECHO ----------- 壓縮 密碼管理資料(2個檔案)----------- >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7Z% a -mx=9 -t7z D:\BACKUP\PassWord\my.idm.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\PassWord\my.idm.200?????
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_4_2
%7Z% a -mx=9 -t7z D:\BACKUP\PassWord\my.apw.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\PassWord\my.apw.200?????
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_5_1
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------ 壓縮 模擬器資料(2個檔案)------------ >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7Z% a -mx=9 -t7z D:\BACKUP\Game\OfflineList_conf.ini.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\Game\OfflineList_conf.ini.200?????
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_5_2
%7Z% a -mx=9 -t7z D:\BACKUP\Game\clrmamepro_cmpro.ini.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\Game\clrmamepro_cmpro.ini.200?????
set /a run_step=%run_step% + 1
GOTO RESULT1
:STEP_6
ECHO ---------------------------------------------------- >> %month_log%
ECHO ------------ 壓縮 hosts 檔案(1個檔案)------------ >> %month_log%
ECHO ---------------------------------------------------- >> %month_log%
%7Z% a -mx=9 -t7z D:\BACKUP\NET\hosts.%date:~0,4%%date:~5,2%%date:~8,2%.7z D:\BACKUP\NET\hosts
set /a run_step=%run_step% + 1
GOTO RESULT1
rem --- 紀錄檔的檔尾 ---
:STEP_7
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
rem --------------------
rem --- 選擇批次檔執行步驟 ---
:CHOICE
if "%run_step%"=="0" GOTO STEP_1
if "%run_step%"=="1" GOTO STEP_2
if "%run_step%"=="2" GOTO STEP_3
if "%run_step%"=="3" GOTO STEP_4_1
if "%run_step%"=="4" GOTO STEP_4_2
if "%run_step%"=="5" GOTO STEP_5_1
if "%run_step%"=="6" GOTO STEP_5_2
if "%run_step%"=="7" GOTO STEP_6
if "%run_step%"=="8" GOTO STEP_7
if "%run_step%" GEQ "9" GOTO END
GOTO END
rem --------------------------
rem --- 壓縮結果判斷1:將執行結果列印到紀錄檔中 ---
:RESULT1
if errorlevel 255 GOTO ECHO 使用者中斷!! >> %month_log%
if errorlevel 8 ECHO 記憶體不足!! >> %month_log%
if errorlevel 7 ECHO 壓縮命令列錯誤!! >> %month_log%
if errorlevel 2 ECHO 發生嚴重錯誤!! >> %month_log%
if errorlevel 1 ECHO 檔案被鎖住,無法壓縮!! >> %month_log%
if errorlevel 0 ECHO 壓縮完成!! >> %month_log%
GOTO RESULT2
rem ----------------------------------------------------
rem --- 壓縮結果判斷2:正確執行則刪除已壓縮的每日備份檔 ---
:RESULT2
if errorlevel 0 RD /S/Q D:\BACKUP\MSN\
[email protected] || DEL /Q D:\BACKUP\Charge\*.*.200????? || DEL /Q D:\BACKUP\PassWord\*.*.200????? || DEL /Q D:\BACKUP\Game\*.*.200????? || DEL /Q D:\BACKUP\NET\hosts > nul
GOTO CHOICE
rem --------------------------------------------------------
:END