想破頭還是達不到我想要的,來尋求01高手們
我想做到系統自動每天產生日天日期的資料夾,並將每天自動備份的系統資料放進每天產生的資料夾
產生資料夾我有試出來
%DATE:~5,2%%DATE:~8,2%
在windows有辦法像linux一樣將[%DATE:~5,2%%DATE:~8,2%]設為一個變數嗎?
現在卡在,每天自動備份的系統資料不知道要如何寫入每天自動產生的資料夾中
此外在刪除前,將『F:\share' 備份至 『F:\日期-share'
我寫好了一個批次檔如下
mkdir F:\%date:~0,4%-%date:~5,2%-%date:~8,2%share
xcopy F:\share\*.* F:\%date:~0,4%-%date:~5,2%-%date:~8,2%share /H /I /S /Y del F:\share\*.* /Q /F /S
但是在share\ 裡其他的資料夾就無法刪除了<<====這是我要的重點
我試過將整個share備份完後再刪除,但是此區有分享權限
刪除完可以再使用批次檔建立分享權限嗎?====>>這是我第一個想到的方法,可是我試不出來
第二個方法使用批次檔for迴圈
自已去找share\底下的資料夾檔名,再一一刪除裡面的資料後,將其資料夾rm掉
但是for迴圈資料好像不多,找不到相關的訊息
不過用壓縮程式可以做到
c:\progra~1\winrar\rar.exe a -agMMDD xxxx.rar c:\
大扣呆 wrote:
想破頭還是達不到我想...(恕刪)
用 set 內建命令來產生變數
例如:
@echo off
rem 設定變數
set month=%date:~5,2%
set day=%date:~8,2%
rem 建立備份目錄
mkdir \\nas\backup\%month% > NUL
rem 自動備份
(配合有支援 CLI 的軟體)
zip -9 \\nas\backup\%month%\%month%%day% d:\docume~1\*
rem 檢查備份結果
zip -t \\nas\backup\%month%\%month%%day%.zip
if %ERRORLEVEL% 1 goto bad
goto end
rem 有錯誤
:bad
echo %month%%day%未完成備份 >> \\nas\backup\log.txt
goto end
:end
rem 清除變數
set month=
set day=
echo 程式結束 >> \\nas\backup\log.txt
hcmhcm wrote:
del F:\share\*.* /Q /F /S
但是在share\ 裡其他的資料夾就無法刪除了<<====這是我要的重點
可以再描述一下您的環境嗎?
1. 這個 share 底下有很多層目錄或 user 自建目錄?
2. 這個 share 底下的目錄及檔案, 希望在備份後全部刪除?
如果只需要"全部刪除", 改用 rd /s /q 即可. (非常危險)
如果要保留目錄結構, 印象中有兩個:
1. 將檔案清單列出來, 以刪檔案的方式進行.
a. dir /a-d /b /s 列出清單, 轉向到暫存的清單檔
b. for 讀取暫存的清單檔, 將檔案名稱列為變數, del 變數
c. 刪掉暫存檔.
(由於跑多次迴圈與列清單, 時間較久; 另外這種讀檔案的 for , 印象中要 XP 之後才支援, DOS 時期還沒有)
2.
a. 將目錄結構另存清單或另外建立一個備份結構.
b. 清掉現在的全部目錄與檔案(指令只要一個, 所以速度快)
c. 將清單重建或還原.
內文搜尋

X