請問一下大家
我有一個檔名 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
一行搞定
<pre class="c" name="code">
copy c:\aaa.csv E:\BACKUP\%date:~5,2%%date:~8,2%aaa.csv
:~5,2%%date:~8,2
這邊可否解釋一下?感謝。
%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元
edgar0407提到:
edgar0407 說:%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元
edgar0407 說:
%date:~5,2% 表示從第5個字元"0"開始取2個字元
^應該是第6個字元
是第 "5" 個沒錯,
因為第一個是從 "0" 開始算起.
感謝cooch兄的協助,因為不會寫程式,所以您提供的方式正好適合我用。
經過%date:~5,2% 表示從第5個字元"0"開始取2個字元 範例解說,我在xp下,一開始試不出結果,後來找到原來我們公司使用的日期格式是日、月、年排列,非一般的年、月、日 所以只用了一行指令就達成我要的目的了
copy "c:\aaa.CSV" e:\backup\aaa_%today%.csv
請問一下 cooch 若固定檔名+年月日時分秒這樣要怎麼修改程式碼呢
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就可以執行了..
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
基本上,你的系統是什麼呢?
2000、XP、2003、2008都會影響到指令的撰寫