作者: speed 時間: 2018-2-7 09:41 標題: XCOPY請教
我想整一個xcopy指令for backup每日的folder
A電腦每日都會有1個FOLDER 叫 2018-02-07(即係每日的日期), 想COPY去B電腦的2018-02-07
個FOLDER係變數,XCOPY可以點寫, 知道有個FUNCTION 係 \%_today% , 但唔知點運用法,個FOLDER格式一定係年-月-日咁排,無法更改
作者: emailaddress 時間: 2018-2-7 10:23
如果date 出 07/02/2018 星期三
試下
%date:~6,4%-%date:~3,2%-%date:~0,2%
作者: speed 時間: 2018-2-7 11:00
回覆 2# emailaddress
好似唔得既
我來源的資料夾名是 [2018-02-07]
作者: speed 時間: 2018-2-7 11:02
回覆 2# emailaddress
好似唔得
我個來源資料夾是 [2018-02-07]
作者: 燒浩 時間: 2018-2-7 14:33
本帖最後由 燒浩 於 2018-2-13 10:10 編輯
用純 cmd 攞 datetime 唔會太準。可透過其他中介攞 datetime (如︰ VBScript)。雖然麻煩少少,唔會因為唔同 locale setting 而錯,準確好多。之前寫落咗個 VBScript,睇睇啱唔啱用。
- '#-----------------------------------------------------------------------------
- '#- datetime.vbs
- '#- Modified Date: 09-Jun-2017
- '#- Example:
- '#- for /f "tokens=1-6" %%i in ('cscript //nologo "datetime.vbs"') do (
- '#- set "year=%%~i"
- '#- set "mon=%%~j"
- '#- set "day=%%~k"
- '#- set "hour=%%~l"
- '#- set "min=%%~m"
- '#- set "sec=%%~n"
- '#- )
- '#-----------------------------------------------------------------------------
- Option Explicit
- Dim nowDateTime, nowYear, nowMonth, nowDay, nowHour, nowMinute, nowSecond
- Dim resDateTime
- Dim i, tmpArray
- Function twoDigits(inValue)
- If inValue < 10 Then
- inValue = "0" & inValue
- End If
- twoDigits = inValue
- End Function
- nowDateTime = Now()
- nowYear = DatePart("yyyy", nowDateTime)
- nowMonth = DatePart("m", nowDateTime)
- nowDay = DatePart("d", nowDateTime)
- nowHour = DatePart("h", nowDateTime)
- nowMinute = DatePart("n", nowDateTime)
- nowSecond = DatePart("s", nowDateTime)
- tmpArray = Array(nowYear, nowMonth, nowDay, nowHour, nowMinute, nowSecond)
- For i = 0 to UBound(tmpArray)
- If i > 0 Then
- resDateTime = resDateTime & "_" & twoDigits(tmpArray(i))
- Else
- resDateTime = twoDigits(tmpArray(i))
- End If
- Next
- WScript.Echo resDateTime
作者: jj2a3 時間: 2018-2-7 16:21
要先知你個%date%係咩format先有得攪. 如畫面個format, 個batch file就.
- set today=[%date:~10,4%-%date:~4,2%-%date:~7,2%]
- xcopy /e /i c:\%today% \\server2\c$\%today%
作者: ckmakit 時間: 2018-2-7 16:22
我平時用開...夾埋落windows scheduler 行...
超陽春的說
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
echo %mydate%
作者: speed 時間: 2018-2-7 16:31
回覆 6# jj2a3
得左喇, 原來就咁%DATE%, thx
作者: speed 時間: 2018-2-8 10:54
好奇怪,我用COPY指令COPY唔到我WIN7 桌面的FILE, 路徑無錯架
C:\Users\XXXXX\Desktop
作者: bongbong3481 時間: 2018-2-8 12:17
回覆 5# 燒浩
同意,dos 個日期格式,吾易正確解讀到
作者: 燒浩 時間: 2018-2-8 12:19
本帖最後由 燒浩 於 2018-2-8 12:20 編輯
Copy folder 要用 xcopy(通常加 /e /h /k /i),copy 只可用於單一 file(如 copy 單一file出現路徑問題,留意 path 有 space必需用「"」引住 path)。
作者: kei11182 時間: 2018-2-9 08:09
點解唔用Powershell? 會唔會簡單d?
作者: bongbong3481 時間: 2018-2-10 20:18
回覆 5# 燒浩
minute 好似寫 "n"
nowMonth = DatePart("m", nowDateTime)
nowMinute = DatePart("m", nowDateTime)
作者: 燒浩 時間: 2018-2-13 10:09
本帖最後由 燒浩 於 2018-2-13 10:18 編輯
回覆 燒浩
minute 好似寫 "n"
nowMonth = DatePart("m", nowDateTime)
nowMinute = DatePart("m", now ...
bongbong3481 發表於 2018-2-10 08:18 PM
謝修正。已改回。
其實各有各好。不過有時用 PowerShell 感覺最大問題係版本,由其係 2.0 同新版差異(由於之前仲有大量 03 Server),好多時寫啲 script 未必兩邊兼容,固多數簡單嘢會用 cmd 撘 vbscript,比較快解決問題。
作者: bongbong3481 時間: 2018-2-13 12:18
回覆 14# 燒浩
我都覺dos command + vbs 比較易用,檔案處理好方便

