iT邦幫忙

0

如何每日copy 單一檔名到 備份目錄後自動將檔名加上當天備份日期

2bears 2011-04-17 07:39:4220926 瀏覽

請問一下大家
我有一個檔名 c:\aaa.csv (每日銷售檔),每天都自動排程備份到e:\backup
因為aaa是每天都會自動產生的,檔名都一樣,所以第二天產生的aaa會自動蓋掉前一天的aaa檔名
我希望每天備份 c:\aaa.csv E:\backup時,COPY的指令或有其它免費的小程式可以自動為這個檔案加上備份當天的日期

EX: 今天4月17日 ,所以 COPY到 E:\BACKUP\AAA0417.csv or 0417aaa.csv

29
cooch
iT邦研究生 3 級 ‧ 2011-04-18 09:02:24
最佳解答

一行搞定

<pre class="c" name="code">
copy c:\aaa.csv E:\BACKUP\%date:~5,2%%date:~8,2%aaa.csv
看更多先前的回應...收起先前的回應...

:~5,2%%date:~8,2

這邊可否解釋一下?感謝。

edgar0407 iT邦新手 5 級 ‧ 2011-04-18 15:55:30 檢舉

%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元

cooch iT邦研究生 3 級 ‧ 2011-04-18 16:57:40 檢舉

edgar0407提到:
edgar0407 說:

%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元

cooch iT邦研究生 3 級 ‧ 2011-04-18 16:58:30 檢舉

edgar0407 說:

%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元

是第 "5" 個沒錯,
因為第一個是從 "0" 開始算起.

2bears iT邦新手 5 級 ‧ 2011-04-18 18:22:58 檢舉

感謝cooch兄的協助,因為不會寫程式,所以您提供的方式正好適合我用。
經過%date:~5,2% 表示從第5個字元"0"開始取2個字元 範例解說,我在xp下,一開始試不出結果,後來找到原來我們公司使用的日期格式是日、月、年排列,非一般的年、月、日 所以只用了一行指令就達成我要的目的了
copy "c:\aaa.CSV" e:\backup\aaa_%today%.csv

4
darkeryu
iT邦新手 1 級 ‧ 2011-04-17 23:45:47

Hi,
用VBS可能會比較簡單,
'===================================================
sourcePath = "c:\"
sourceFile ="aaa.csv"
targetPath ="E:\backup\"
if len(Month(now()))<2 then
Monthstr = "0" & Month(now())
else
Monthstr = Month(now())
end if
if len(day(now()))<2 then
DayStr = "0" & day(now())
else
DayStr = day(now())
end if
DateStr = Year(now()) & "-" & Monthstr & "-" & DayStr
targetfile = replace(sourcefile,".csv", DateStr & ".csv")
set fs = CreateObject("Scripting.filesystemObject")
fs.CopyFile sourcePath & sourceFile, targetPath & targetfile , true
'===================================================
存成.vbs就可以執行了..

4
jackslfs
iT邦新手 4 級 ‧ 2011-04-18 08:48:39

set today=%date:~0,4%%date:~5,2%%date:~8,2%
mkdir e:\backup\%today%
xcopy "c:\aaa.csv" e:\backup\%today%\ /E/H/K

cooch iT邦研究生 3 級 ‧ 2011-04-18 09:08:07 檢舉

1 問題是要在檔案名稱上出現日期,不是建一個有日期的目錄
2 問題沒有說要年份資料

...對不起,好像在改考卷!

2
chiahuo
iT邦新手 4 級 ‧ 2011-04-18 16:56:55

基本上,你的系統是什麼呢?
2000、XP、2003、2008都會影響到指令的撰寫

cooch iT邦研究生 3 級 ‧ 2011-04-18 17:01:15 檢舉

我測過的平台: Windows XP,Windows 7,Windows Server 2003都OK.
基本上如過下面指令執行結果相同的話就可以直接使用,不用更改

&lt;pre class="c" name="code">C:\>echo %date%
2011/04/18 星期一

我要發表回答

立即登入回答