用於適合大量複製檔案的dos指令。
可參考:http://pcuser.pixnet.net/blog/post/27305268
以下為程式自身說明:
-------------------------------------------------------------------------------
ROBOCOPY :: Robust File Copy for Windows
-------------------------------------------------------------------------------
簡單使用方式 :: ROBOCOPY source destination /MIR
source :: 來源目錄 (drive:\path 或 \\server\share\path)。
destination :: 目的地目錄 (drive:\path 或 \\server\share\path)。
/MIR :: 鏡像完整的樹狀目錄。
如需有關使用方式的詳細資訊,請執行 ROBOCOPY /?
**** /MIR 可以刪除檔案以及複製檔案!
-------------------------------------------------------------------------------
使用方式 :: ROBOCOPY source destination [file [file]...] [options]
source :: 來源目錄 (drive:\path 或 \\server\share\path)。
destination :: 目的地目錄 (drive:\path 或 \\server\share\path)。
file :: 要複製的檔案 (名稱/萬用字元: 預設值是 "*.*")。
::
:: 複製選項 :
::
/S :: 複製子目錄,但是空的子目錄例外。
/E :: 複製子目錄,包括空的子目錄。
/LEV:n :: 只複製來源目錄的前 n 層。
/Z :: 在可重新啟動模式複製檔案。
/B :: 在備份模式複製檔案。
/ZB :: 使用可重新啟動模式; 如果拒絕存取,則使用備份模式。
/EFSRAW :: 在 EFS RAW 模式複製所有加密檔案。
/COPY:copyflag[s] :: 要為檔案複製什麼內容 (預設值是 /COPY:DAT)。
(複製旗標: D=資料、A=屬性、T=時間戳記)。
(S=安全性=NTFS ACL、O=擁有者資訊、U=稽核資訊)。
/DCOPY:T :: 複製目錄時間戳記。
/SEC :: 複製包含安全性的檔案 (相當於 /COPY:DATS)。
/COPYALL :: 複製所有檔案資訊 (相當於 /COPY:DATSOU)。
/NOCOPY :: 不複製檔案資訊 (可用於 /PURGE)。
/SECFIX :: 修正所有檔案的安全性,即使略過的檔案也包含在內。
/TIMFIX :: 修正所有檔案的檔案時間,即使略過的檔案也包含在內。
/PURGE :: 刪除來源已經不存在的目的地檔案/目錄。
/MIR :: 鏡像樹狀目錄 (相當於 /E 加 /PURGE)。
/MOV :: 移動檔案 (複製後從來源刪除)。
/MOVE :: 移動檔案和目錄 (複製後從來源刪除)。
/A+:[RASHCNET] :: 將指定的屬性新增至複製的檔案。
/A-:[RASHCNET] :: 從複製的檔案移除指定的屬性。
/CREATE :: 只建立樹狀目錄和長度為零的檔案。
/FAT :: 只使用 8.3 FAT 檔案名稱,建立目的地檔案。
/256 :: 關閉特長路徑 (> 256 個字元) 支援。
/MON:n :: 監視來源; 看到 n 個字元以上時再次執行。
/MOT:m :: 監視來源; m 分鐘後如果變更,則再次執行。
/RH:hhmm-hhmm :: 執行時數 - 新複本可以開始的時間。
/PF :: 根據每一個檔案為基礎,檢查執行時數 (不是根據每一次通過)。
/IPG:n :: 慢速線路可用頻寬,封包之間的差距 (毫秒)。
/SL :: 複製符號連結與目標。
/MT[:n] :: 以 n 個執行緒執行多執行緒複製 (預設值為 8)。
n 必須至少為 1,但不可以大於 128。
此選項與 /IPG 和 /EFSRAW 選項不相容。
使用 /LOG 選項重新導向輸出,以獲得更好的效能。
::
:: 檔案選取選項 :
::
/A :: 只複製已設定保存屬性的檔案。
/M :: 只複製包含保存屬性的檔案並重設。
/IA:[RASHCNETO] :: 只包含附帶任何指定屬性的檔案。
/XA:[RASHCNETO] :: 排除附帶任何指定屬性的檔案。
/XF file [file]... :: 排除符合指定名稱/路徑/萬用字元的檔案。
/XD dirs [dirs]... :: 排除符合指定名稱/路徑的目錄。
/XC :: 排除變更的檔案。
/XN :: 排除較新的檔案。
/XO :: 排除較舊的檔案。
/XX :: 排除其他檔案和目錄。
/XL :: 排除孤立的檔案和目錄。
/IS :: 包含相同的檔案。
/IT :: 包含調整的檔案。
/MAX:n ::檔案大小上限 - 排除大於 n 個位元組的檔案。
/MIN:n :: 檔案大小下限 - 排除小於 n 個位元組的檔案。
/MAXAGE:n :: 檔案期限上限 - 排除 n 日/日期之前的檔案。
/MINAGE:n :: 檔案期限下限 - 排除 n 日/日期之後的檔案。
/MAXLAD:n :: 上次存取日期上限 -排除自 n 日後未使用的檔案。
/MINLAD:n :: 上次存取日期下限 - 排除自 n 日後使用的檔案。
(如果 n < 1900 則 n = n 日,否則 n = YYYYMMDD 日期)。
/XJ :: 排除交叉點。(一般會預設包含)。
/FFT :: 使用 FAT 檔案時間 (2 秒精細度)。
/DST :: 補償 1 小時 DST 時差。
/XJD :: 排除目錄的交叉點。
/XJF :: 排除檔案的交叉點。
::
:: 重試選項:
::
/R:n :: 失敗複本的重試次數: 預設值是 1 百萬次。
/W:n :: 重試之間等候時間: 預設值是 30 秒。
/REG :: 將 /R:n 和 /W:n 儲存至登錄中,變成預設值。
/TBD :: 等候共用名稱。即將定義 (重試錯誤 67)。
::
:: 記錄選項:
::
/L :: 限清單 - 不複製、刪除任何檔案或加上戳記。
/X :: 報告所有其他檔案,不僅是這些選取的檔案而已。
/V :: 產生詳細資訊輸出,顯示略過的檔案。
/TS :: 在輸出中包含來源檔案時間戳記。
/FP :: 在輸出中包含檔案的完整路徑名稱。
/BYTES :: 將大小列印成位元組。
/NS :: 沒有大小 - 不記錄檔案大小。
/NC :: 沒有類別 - 不記錄檔案類型。
/NFL :: 沒有檔案清單 - 不記錄檔案名稱。
/NDL :: 沒有目錄清單 - 不記錄目錄名稱。
/NP :: 無進度 - 不顯示複製百分比。
/ETA :: 顯示複製的檔案預估到達時間。
/LOG:file :: 輸出狀態至記錄檔 (覆寫現有的記錄檔)。
/LOG+:file :: 輸出狀態至記錄檔 (附加至現有的記錄檔)。
/UNILOG:file :: 輸出狀態至記錄檔,變成 UNICODE (覆寫現有的記錄檔)。
/UNILOG+:file :: 輸出狀態至記錄檔,變成 UNICODE (附加至現有的記錄檔)。
/TEE :: 輸出至主控台視窗,以及記錄檔。
/NJH :: 沒有工作標頭。
/NJS :: 沒有工作摘要。
/UNICODE :: 輸出狀態為 UNICODE。
::
:: 工作選項:
::
/JOB:jobname :: 從命名的工作檔案取得參數。
/SAVE:jobname :: 將參數儲存至命名的工作檔案
/QUIT :: 處理命令列後結束 (檢視參數)。
/NOSD :: 未指定來源目錄。
/NODD :: 未指定目的地目錄。
/IF :: 包含以下檔案。
##title##

2015年2月27日
2012年4月26日
DOS:at指令
用來設定關電腦時間很方便,例如:
at 1:00 shutdown /s /t 5
代表在1:00時執行「shutdown /s /t 5」,也就是1:00起,5秒後開始關電腦。
如果 at 已有有任務的時候,輸入 at 就可以知道目前排程的任務還有哪些。
at 指令說明
AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"
\\computername
指定遠端電腦。
如果省略這個參數,命令會被排定在本機上執行。
id
指定給排定時程命令的識別碼。
/delete
刪除某個已排程的命令。如果省略 id,所有電腦上已排程的命令都會被刪除。
/yes
用於刪除所有已排程的工作,且不想在執行刪除時顯示確認訊息使用。
time
指定命令執行的時間。將時間以 24 小時標記(00:00 [午夜] 到 23:59)的方式表示為小時:分鐘。
/interactive
允許工作在執行時,與當時登入的用戶互動。
/every:date[,...]
指定在每週或每月的某日(例如,每個星期四,或每月的第三天)執行命令,用逗號分隔多個日期項。
如果省略日期,則預設為在每月的本日執行。
將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。
/next:date[,...]
指定在下一次的指定日期 (如,下週三) 時,執行命令,用逗號分隔多個日期項。
如果省略日期,則預設為在每月的本日執行。
運行指定命令將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。
"command"
準備執行的 Windows NT 命令或批次檔。
當命令需要路徑作為參數時,請使用絕對路徑。
如果命令在遠端電腦上,請指定服務器和共享名的 UNC 符號,而不是遠程驅動器號。
如果命令不是可執行 (.exe) 文件,必須在命令前加上 cmd /c,例如:cmd /c dir > c:\test.out
at 1:00 shutdown /s /t 5
代表在1:00時執行「shutdown /s /t 5」,也就是1:00起,5秒後開始關電腦。
如果 at 已有有任務的時候,輸入 at 就可以知道目前排程的任務還有哪些。
at 指令說明
AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
[ /EVERY:date[,...] | /NEXT:date[,...]] "command"
\\computername
指定遠端電腦。
如果省略這個參數,命令會被排定在本機上執行。
id
指定給排定時程命令的識別碼。
/delete
刪除某個已排程的命令。如果省略 id,所有電腦上已排程的命令都會被刪除。
/yes
用於刪除所有已排程的工作,且不想在執行刪除時顯示確認訊息使用。
time
指定命令執行的時間。將時間以 24 小時標記(00:00 [午夜] 到 23:59)的方式表示為小時:分鐘。
/interactive
允許工作在執行時,與當時登入的用戶互動。
/every:date[,...]
指定在每週或每月的某日(例如,每個星期四,或每月的第三天)執行命令,用逗號分隔多個日期項。
如果省略日期,則預設為在每月的本日執行。
將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。
/next:date[,...]
指定在下一次的指定日期 (如,下週三) 時,執行命令,用逗號分隔多個日期項。
如果省略日期,則預設為在每月的本日執行。
運行指定命令將 date 指定為星期的一天或多天 (M,T,W,Th,F,S,Su),或月的一天或多天(使用 1 到 31 的數字)。
"command"
準備執行的 Windows NT 命令或批次檔。
當命令需要路徑作為參數時,請使用絕對路徑。
如果命令在遠端電腦上,請指定服務器和共享名的 UNC 符號,而不是遠程驅動器號。
如果命令不是可執行 (.exe) 文件,必須在命令前加上 cmd /c,例如:cmd /c dir > c:\test.out
2012年1月21日
DOS:attrib批次恢復檔案屬性
有時候如果中毒,所有資料夾和檔案都變隱藏檔,雖然在windows下對資料夾或檔案按右鍵,選擇內容就可以恢復,但如果像是透過「讓資料夾圖示跟著資料夾跑」這篇這樣,電腦裡已經修改了大量資料夾或檔案,改起來可就比較麻煩了。
這時候可以透過dos指令attrib來完成大量的作業。
windows+r
cmd
attrib /?
顯示或變更檔案屬性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[drive:][path][filename] [/S [/D] [/L]]
+ 設定屬性。
- 清除屬性。
R 唯讀檔案屬性。
A 保存檔案屬性。
S 系統檔案屬性。
H 隱藏檔案屬性。
I 非內容索引檔案屬性。
[drive:][path][filename]
指定一或多個檔案給 attrib 處理。
/S 處理目前的資料夾及所有子資料夾中相符的檔案。
/D 一併處理資料夾。
/L 處理符號連結的屬性,而非符號連結的目標。
另外也可以透過批次檔的方式,批次檔可以有其他更靈活的做法。
這時候可以透過dos指令attrib來完成大量的作業。
windows+r
cmd
rem 將所有資料夾與檔案屬性改為顯示 attrib –h C:\*.* /s /d rem 將名為icon的資料夾屬性改為隱藏 attrib +h icon /s /d
attrib /?
顯示或變更檔案屬性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
[drive:][path][filename] [/S [/D] [/L]]
+ 設定屬性。
- 清除屬性。
R 唯讀檔案屬性。
A 保存檔案屬性。
S 系統檔案屬性。
H 隱藏檔案屬性。
I 非內容索引檔案屬性。
[drive:][path][filename]
指定一或多個檔案給 attrib 處理。
/S 處理目前的資料夾及所有子資料夾中相符的檔案。
/D 一併處理資料夾。
/L 處理符號連結的屬性,而非符號連結的目標。
另外也可以透過批次檔的方式,批次檔可以有其他更靈活的做法。
2011年12月25日
2011年12月3日
DOS:copy檔案含日期或時間
可以透過 date /t把日期抽取出來當變數,然後copy檔案時可以把抽出來的變數當檔名。範例如下:
for /f "tokens=1-4 delims=-/ " %%i IN ('date /t') DO (
set year=%%i
set month=%%j
set day=%%k
)
copy "C:\a\test.txt" "C:\b\%year%%month%%day%_test.txt"
這樣存的檔名前面就可以自動帶上日期了。
關於時間的話可參考:如何在 Batch 檔取得系統的日期、時間欄位
for /f "tokens=1-4 delims=-/ " %%i IN ('date /t') DO (
set year=%%i
set month=%%j
set day=%%k
)
copy "C:\a\test.txt" "C:\b\%year%%month%%day%_test.txt"
這樣存的檔名前面就可以自動帶上日期了。
關於時間的話可參考:如何在 Batch 檔取得系統的日期、時間欄位
2011年10月20日
DOS:用 dir 輸出 Unicode 指令
一般執行 dir 顯示 Unicode 正常。
但輸出時如果遇上 Unicode 檔名的話,例如:
dir > dir.txt
會變成問號檔名。
但用 cmd 的 /u 指令就可以解決了,範例:
cmd /u /c dir/s/b > test.txt
(不過是ULE格式,要用類似 Notepad++ 的軟體才能看,npp.5.7.bin的可以,更新版的不知道為何就不行)
但輸出時如果遇上 Unicode 檔名的話,例如:
dir > dir.txt
會變成問號檔名。
但用 cmd 的 /u 指令就可以解決了,範例:
cmd /u /c dir/s/b > test.txt
(不過是ULE格式,要用類似 Notepad++ 的軟體才能看,npp.5.7.bin的可以,更新版的不知道為何就不行)
2010年8月27日
DOS:xcopy 參數
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要複製的檔案。
destination 指定新檔案的位置和/或名稱。
/A 只複製已設定保存屬性的檔案,不改變屬性。
/M 只複製已設定保存屬性的檔案,並關閉保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。
如果沒有指定日期,只複製來源檔案時間比目的地時間為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定包含字串的檔案清單。每個字串應該在檔案中的不同行。如果有任何字串對應到要進行複製的檔案之絕對路徑的任何部分,這個檔案會被排除複製。
例如,指定字串 \obj\ 或 .obj,將會排除 obj 目錄下的所有檔案,或副檔名是 .obj 的所有檔案。
/P 在建立每個目的地檔案前顯示提示。
/S 複製每個目錄及子目錄,但空目錄除外。
/E 複製每個目錄及子目錄,包含空目錄。
與 /S /E 相同。可用來修改 /T。
/V 檢查每個新檔案的大小。
/W 在複製之前提示您按鍵。
/C 即使發生錯誤,仍繼續複製。
/I 如果目的地不存在且複製一個以上的檔案,即假設該目的地必然是目錄。
/Q 複製時不顯示檔名。
/F 複製時顯示來源及目的地檔案的完整檔名。
/L 顯示要複製的檔案。
/G 允許將加密檔案複製到不支援加密的目的地。
/H 同時複製隱藏檔案和系統檔案。
/R 覆寫唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄或子目錄。
/T /E 則包含空目錄及子目錄。
/U 只複製已存在於目的地的檔案。
/K 複製屬性。一般 Xcopy 將會重設唯讀屬性。
/N 使用產生的簡短檔名進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案稽核設定 (隱含 /O)。
/Y 不要提示您確認是否要覆寫已存在的目的地檔案。
/-Y 提示您確認是否要覆寫已存在的目的地檔案。
/Z 在可重新啟動的模式中複製網路檔案。
/B 複製符號連結本身而非連結的目標。
/J 使用無緩衝的 I/O 複製,建議使用於非常大的檔案。
切換參數 /Y 可以在 COPYCMD 環境變數中預先設定。
這可以在命令列中使用 /-Y 加以覆寫。
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:file1[+file2][+file3]...]
source 指定要複製的檔案。
destination 指定新檔案的位置和/或名稱。
/A 只複製已設定保存屬性的檔案,不改變屬性。
/M 只複製已設定保存屬性的檔案,並關閉保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。
如果沒有指定日期,只複製來源檔案時間比目的地時間為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定包含字串的檔案清單。每個字串應該在檔案中的不同行。如果有任何字串對應到要進行複製的檔案之絕對路徑的任何部分,這個檔案會被排除複製。
例如,指定字串 \obj\ 或 .obj,將會排除 obj 目錄下的所有檔案,或副檔名是 .obj 的所有檔案。
/P 在建立每個目的地檔案前顯示提示。
/S 複製每個目錄及子目錄,但空目錄除外。
/E 複製每個目錄及子目錄,包含空目錄。
與 /S /E 相同。可用來修改 /T。
/V 檢查每個新檔案的大小。
/W 在複製之前提示您按鍵。
/C 即使發生錯誤,仍繼續複製。
/I 如果目的地不存在且複製一個以上的檔案,即假設該目的地必然是目錄。
/Q 複製時不顯示檔名。
/F 複製時顯示來源及目的地檔案的完整檔名。
/L 顯示要複製的檔案。
/G 允許將加密檔案複製到不支援加密的目的地。
/H 同時複製隱藏檔案和系統檔案。
/R 覆寫唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄或子目錄。
/T /E 則包含空目錄及子目錄。
/U 只複製已存在於目的地的檔案。
/K 複製屬性。一般 Xcopy 將會重設唯讀屬性。
/N 使用產生的簡短檔名進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案稽核設定 (隱含 /O)。
/Y 不要提示您確認是否要覆寫已存在的目的地檔案。
/-Y 提示您確認是否要覆寫已存在的目的地檔案。
/Z 在可重新啟動的模式中複製網路檔案。
/B 複製符號連結本身而非連結的目標。
/J 使用無緩衝的 I/O 複製,建議使用於非常大的檔案。
切換參數 /Y 可以在 COPYCMD 環境變數中預先設定。
這可以在命令列中使用 /-Y 加以覆寫。
訂閱:
文章 (Atom)