bat批處理之文件與文件夾操作代碼(附xcopy命令詳解)
來(lái)源:易賢網(wǎng) 閱讀:3125 次 日期:2016-06-14 10:27:05
溫馨提示:易賢網(wǎng)小編為您整理了“bat批處理之文件與文件夾操作代碼(附xcopy命令詳解)”,方便廣大網(wǎng)友查閱!

本文介紹下,在批處理腳本中,操作文件與文件夾的方法,包括文件的復(fù)制、刪除、移動(dòng)等操作,并附有xcopy命令的詳細(xì)用法,有需要的朋友參考下吧

批處理中的文件、文件夾操作,xcopy命令的用法。

一,建bat文件自動(dòng)執(zhí)行復(fù)制,刪除命令。

例1:復(fù)制cd.dll文件至windows\system32的bat文件內(nèi)容:

代碼如下:

copy cd.dll %windir%\system32

例2:卸載windows\system32目錄中的cd.dll,即把上面復(fù)制的文件刪除:

代碼如下:

del %windir%\system32\cd.dll

例3:刪除download文件夾中的文件,例子如下:

代碼如下:

del c:\download\*.*

注意,以處的del命令只能刪文件,不能刪文件夾。

刪除文件夾使用rd命令,如下:

代碼如下:

>

rd filemon

這里filemon文件夾和該bat文件在同一目錄下,就省去具體路徑了。但rd只能刪除空文件夾.

要?jiǎng)h除文件夾及其里面的所有子目錄和文件,用rd命令帶/s /q參數(shù),

/s參數(shù)表示刪除該文件夾及其下面的子目錄和文件

/q參數(shù)表示,不需要確認(rèn)

例子:

代碼如下:

rd 123 /s /q

二,創(chuàng)建文件夾

例:在e:\my documents下面一次創(chuàng)建3個(gè)新文件夾:newfolder1,newfolder2,newfolder3

代碼如下:

@echo off

md e:\my documents\newfolder1

md e:\my documents\newfolder2

md e:\my documents\newfolder3

三,執(zhí)行程序,打開文件

例1:執(zhí)行c盤下的winword.exe程序

代碼如下:

start c:\winword.exe

例2:用某個(gè)程序打開某個(gè)文件,如用theworld.exe打開一個(gè)htm文件

復(fù)制代碼 代碼如下:start d:\theworld\theworld.exe c:\我有一個(gè)戀愛(ài).htm

[注意]:不論是程序或文件路徑中含有空格,都必須用引號(hào)括起來(lái):

代碼如下:

start d:\theworld\theworld.exe e:\my documents\我有一個(gè)戀愛(ài).htm

所有程序中的引號(hào)不能是全角的,必須用半角的格式,所以輸入引號(hào)前最好關(guān)閉漢字輸入系統(tǒng)

xcopy 還有眾多的功能, 是加參數(shù)來(lái)完成的。上面的/s /e 參數(shù)的作用分別是把子目錄和空目錄都復(fù)制過(guò)去,一些使用舉例和參數(shù)說(shuō)明如下:

1、如只是單純地復(fù)制 e:\ 盤上所有文件到 d:\ 盤上,就輸入“ xcopy e:\*.* d: /s /h 就行啦!如果在復(fù)制過(guò)程中,你不要他復(fù)制文件啦!那就按鍵盤熱鍵“ctrl +pause /break 二個(gè)熱鍵 來(lái)中斷復(fù)制。

2、如果想把e:\ 盤上所有文件復(fù)制到d:\盤上,分為今天復(fù)制一點(diǎn),明天再接著復(fù)制一些,后天再接著復(fù)制一些?;蛘呤悄撤N原因上次沒(méi)有復(fù)制完成,今天想接著復(fù)制。(這種情況是經(jīng)常在復(fù)制文件中出現(xiàn)的)那可怎么辦才好呢?

那就輸入“ xcopy e:\*.* d: /s /h /d /y ”就行啦。他能查出那些文件是已經(jīng)復(fù)制過(guò)去啦,那些文件還沒(méi)有復(fù)制過(guò)去的。

3、當(dāng)然我們也會(huì)碰到這種情況,一些文件我們已經(jīng)修改過(guò)啦!網(wǎng)上面又有最新版本的啦。原來(lái)備份的那份文件我們要及時(shí)更新啦。那怎么才能同步更新呢?當(dāng)然我們可以把最新的好份文件復(fù)制過(guò)去,這也是一種解決辦法。

如果修改的文件有很多的,自己到時(shí)候也記不清楚那份文件是更新過(guò)的。這么多的原來(lái)備份的那份文件都要更新,都要復(fù)制過(guò)去,可不是件省力氣的活,而且容易出錯(cuò)和一些文件被忘記啦!

那和上面一樣也同樣輸入 xcopy e:\*.* d: /s /h /d /y 就行啦!

4、還有一種情況我們經(jīng)常也碰到的,因?yàn)閺?fù)制某個(gè)文件出錯(cuò)或者這個(gè)文件在使用中,而停止了復(fù)制工作,(比如,復(fù)制c 盤上的 windows xp )我們這時(shí)候想跳過(guò)某個(gè)出錯(cuò)的文件和某個(gè)正在使用中文件而繼續(xù)復(fù)制其他文件。

在多加入一個(gè)參數(shù) /c 就是 xcopy e:\*.* d: /s /h /d /c /y 就行啦!

5、有時(shí)候我們想xcopy 變?yōu)樽詣?dòng)復(fù)制,并且復(fù)制完成后關(guān)閉電腦,可以建立一個(gè)批處理文件,新建文本文檔,更名為xcopy.bat 當(dāng)然擴(kuò)展名原來(lái)是txt 格式的要更名為bat 在這個(gè) xcopy.bat 中輸入

代碼如下:

xcopy e:\*.* d: /s /h /c /y

shutdown -s 

然后雙擊xcopy.bat 運(yùn)行它,你這時(shí)候可以出去玩啦。電腦會(huì)自己復(fù)制備份完成文件然后自動(dòng)關(guān)閉電腦。

xcopy source [destination] 參數(shù)(如 /s /e)

source 指定要復(fù)制的文件。

destination 指定新文件的位置和/或名稱。

/a 只復(fù)制有存檔屬姓集的文件,

但不改變屬姓。

/m 只復(fù)制有存檔屬姓集的文件,

并關(guān)閉存檔屬姓。

/d:m-d-y 復(fù)制在指定日期或指定日期以后改變的文件。

如果沒(méi)有提供日期,只復(fù)制那些源時(shí)間

比目標(biāo)時(shí)間新的文件。

/exclude:file1[+file2][+file3]...

指定含有字符串的文件列表。如果有任何

字符串與要被復(fù)制的文件的絕對(duì)路徑

相符,那個(gè)文件將不會(huì)得到復(fù)制。

例如,指定如 \obj\ 或 .obj 的字符串會(huì)排除

目錄 obj 下面的所有文件或帶有

.obj 擴(kuò)展名的文件。

/p 創(chuàng)建每個(gè)目標(biāo)文件前提示。

/s 復(fù)制目錄和子目錄,除了空的。

/e 復(fù)制目錄和子目錄,包括空的。

與 /s /e 相同??梢杂脕?lái)修改 /t。

/v 驗(yàn)證每個(gè)新文件。

/w 提示您在復(fù)制前按鍵。

/c 即使有錯(cuò)誤,也繼續(xù)復(fù)制。

/i 如果目標(biāo)不存在,又在復(fù)制一個(gè)以上的文件,

則假定目標(biāo)一定是一個(gè)目錄。

/q 復(fù)制時(shí)不顯示文件名。

/f 復(fù)制時(shí)顯示完整的源和目標(biāo)文件名。

/l 顯示要復(fù)制的文件。

/g 允許將沒(méi)有經(jīng)過(guò)加密的文件復(fù)制到

不支持加密的目標(biāo)。

/h 也復(fù)制隱藏和系統(tǒng)文件。

/r 改寫只讀文件。

/t 創(chuàng)建目錄結(jié)構(gòu),但不復(fù)制文件。不

包括空目錄或子目錄。/t /e 包括

空目錄和子目錄。

/u 只復(fù)制已經(jīng)存在于目標(biāo)中的文件。

/k 復(fù)制屬姓。一般的 xcopy 會(huì)重設(shè)只讀屬姓。

/n 用生成的短名復(fù)制。

/o 復(fù)制文件所有權(quán)和 acl 信息。

/x 復(fù)制文件審核設(shè)置(隱含 /o)。

/y 禁止提示以確認(rèn)改寫一個(gè)

現(xiàn)存目標(biāo)文件。

/-y 導(dǎo)致提示以確認(rèn)改寫一個(gè)

現(xiàn)存目標(biāo)文件。

/z 用重新啟動(dòng)模式復(fù)制網(wǎng)絡(luò)文件。

xcopy 命令

復(fù)制文件和目錄,包括子目錄。

語(yǔ)法

xcopy source [destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd-yyyy]] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z]

參數(shù)

source

必需的。指定要復(fù)制的文件的位置和名稱。該參數(shù)必須包含驅(qū)動(dòng)器或路徑。

destination

指定要復(fù)制的文件的目標(biāo)。該參數(shù)可以包含驅(qū)動(dòng)器盤符和冒號(hào)、目錄名、文件名或者它們的組合。

/w

在開始復(fù)制文件之前將顯示以下消息并等待您的響應(yīng):

press any key to begin copying file(s)

/p

提示您確認(rèn)是否要?jiǎng)?chuàng)建每個(gè)目標(biāo)文件。

/c

忽略錯(cuò)誤。

/v

在寫入目標(biāo)文件時(shí)驗(yàn)證每個(gè)文件,以確保目標(biāo)文件與源文件完全相同。

/q

禁止顯示 xcopy 消息。

/f

復(fù)制時(shí)顯示源文件名和目標(biāo)文件名。

/l

顯示要復(fù)制的文件列表。

/g

創(chuàng)建解密的目標(biāo)文件。

/d[:mm-dd-yyyy]

只復(fù)制那些在指定日期或指定日期之后更改過(guò)的源文件。如果不包括 mm-dd-yyyy 值,xcopy 會(huì)復(fù)制比現(xiàn)有 destination 文件新的所有 source 文件。該命令行選項(xiàng)使您可以更新更改過(guò)的文件。

/u

只從 source 復(fù)制 destination 中已有的文件。

/i

如果 source 是一個(gè)目錄或包含通配符,而 destination 不存在,xcopy 會(huì)假定 destination 指定目錄名并創(chuàng)建一個(gè)新目錄。然后,xcopy 會(huì)將所有指定文件復(fù)制到新目錄中。默認(rèn)情況下,xcopy 將提示您指定 destination 是文件還是目錄。

/s

復(fù)制非空的目錄和子目錄。如果省略 /s,xcopy 將在一個(gè)目錄中工作。

/e

復(fù)制所有子目錄,包括空目錄。同時(shí)使用 /e、/s 和 /t 命令行選項(xiàng)。

/t

只復(fù)制子目錄結(jié)構(gòu)(即目錄樹),不復(fù)制文件。要復(fù)制空目錄,必須包含 /e 命令行選項(xiàng)。

/k

復(fù)制文件,如果源文件具有只讀屬姓,則在目標(biāo)文件中保留該屬姓。默認(rèn)情況下,xcopy 會(huì)刪除只讀屬姓。

/r

復(fù)制只讀文件。

/h

復(fù)制具有隱藏和系統(tǒng)文件屬姓的文件。默認(rèn)情況下,xcopy 不復(fù)制隱藏或系統(tǒng)文件。

/a

只復(fù)制那些具有存檔文件屬姓設(shè)置的源文件。/a 不修改源文件的存檔文件屬姓。有關(guān)如何通過(guò)使用 attrib 來(lái)設(shè)置存檔文件屬姓的信息,請(qǐng)參閱“”。

/m

復(fù)制具有存檔文件屬姓設(shè)置的源文件。與 /a 不同,/m 關(guān)閉在源中指定的文件的存檔文件屬姓。有關(guān)如何通過(guò)使用 attrib 來(lái)設(shè)置存檔文件屬姓的信息,請(qǐng)參閱“”。

/n

使用 ntfs 短文件或目錄名創(chuàng)建副本。將文件或目錄從 ntfs 卷復(fù)制到 fat 卷或者當(dāng)目標(biāo)文件系統(tǒng)需要 fat 文件系統(tǒng)命名約定(即 8.3 個(gè)字符)時(shí),需要 /n。目標(biāo)文件系統(tǒng)可以是 fat 或 ntfs。

/o

復(fù)制文件所有權(quán)與自由選擇的訪問(wèn)控制列表 (dacl) 信息。

/x

復(fù)制文件審核設(shè)置和系統(tǒng)訪問(wèn)控制列表 (sacl) 信息(包含 /o)。

/exclude:filename1[+[filename2]][+[filename3]]

指定包含字符串的文件列表。

/y

禁止提示您確認(rèn)要覆蓋現(xiàn)存的目標(biāo)文件。

/-y

提示您確認(rèn)要覆蓋現(xiàn)有目標(biāo)文件。

/z

在可重啟模式中通過(guò)網(wǎng)絡(luò)復(fù)制。

/?

在命令提示符顯示幫助。

注釋

使用 /v

xox

使用 /exclude

列出每個(gè)文件的單獨(dú)行中的每個(gè)字符串。如果列出的任何字符串與要復(fù)制的文件的絕對(duì)路徑的任何部分匹配,就從復(fù)制進(jìn)程排除該文件。例如,如果指定字符串 \obj\,則會(huì)排除 obj 目錄下的所有文件。如果指定字符串 .obj,則排除具有 .obj 擴(kuò)展名的所有文件。

使用 /z

如果在復(fù)制過(guò)程中丟失連接(例如,如果用于連接的服務(wù)器脫機(jī)),復(fù)制過(guò)程將在重新建立連接后恢復(fù)。/z 也顯示每個(gè)文件完成的復(fù)制操作的百分比。

在 copycmd 環(huán)境變量中使用 /y

可在 copycmd 環(huán)境變量中使用 /y。在命令行上使用 /-y 可以覆蓋該命令。默認(rèn)情況下,會(huì)提示您覆蓋,除非您從批處理腳本內(nèi)運(yùn)行 copy。

復(fù)制加密的文件

將加密文件復(fù)制到不支持 efs 的卷會(huì)導(dǎo)致錯(cuò)誤。應(yīng)首先解密文件或?qū)⑽募?fù)制到支持 efs 的卷中。

附屬文件

要附加文件,請(qǐng)指定單個(gè)目標(biāo)文件,多個(gè)源文件(使用通配符或文件 1 + 文件 2 + 文件 3 格式)。

本節(jié)是 bat批處理文件與文件夾(附xcopy命令詳解) 第二部的內(nèi)容,請(qǐng)大家繼續(xù)閱讀。

destination 的默認(rèn)值

如果省略 destination,xcopy 命令將文件復(fù)制到當(dāng)前目錄。

指定 destination 是文件還是目錄

如果 destination 不包含現(xiàn)有目錄且不以反斜杠 (\) 結(jié)尾,會(huì)出現(xiàn)下列消息:

does destination specify a file name

or directory name on the target

(f = file, d = directory)?

如果要將一個(gè)或多個(gè)文件復(fù)制到一個(gè)文件,請(qǐng)按 f。如果要將一個(gè)或多個(gè)文件復(fù)制到一個(gè)目錄,請(qǐng)按 d。

使用 /i 命令行選項(xiàng)可抑制顯示該消息,從而導(dǎo)致 xcopy 認(rèn)定在源是多個(gè)文件或一個(gè)目錄的情況下,目標(biāo)是一個(gè)目錄。

使用 xcopy 命令設(shè)置 destination 文件的存檔屬姓

xcopy 命令創(chuàng)建具有存檔屬姓設(shè)置的文件,無(wú)論源文件中是否設(shè)定了此屬姓。有關(guān)文件屬姓和 attrib 的詳細(xì)信息,請(qǐng)參閱“”。

比較 xcopy 和 diskcopy

如果磁盤的子目錄中包含文件,要將其復(fù)制到具有不同格式的磁盤中,請(qǐng)使用 xcopy 命令,而不要使用 diskcopy。因?yàn)?diskcopy 命令是一個(gè)磁道接一個(gè)磁道地復(fù)制磁盤,所以需要源磁盤和目標(biāo)磁盤的格式必須相同。xcopy 命令沒(méi)有該要求。通常情況下請(qǐng)使用 xcopy,除非您需要完整的磁盤圖像副本。

xcopy 的退出碼

要處理 xcopy 返回的退出碼,請(qǐng)?jiān)谂幚沓绦虻?if 命令行上使用 errorlevel 參數(shù)。有關(guān)使用“if”處理退出碼的批處理程序的范例,請(qǐng)參閱“”。下表列出每一個(gè)退出碼和說(shuō)明。

退出碼 說(shuō)明

0 文件復(fù)制沒(méi)有錯(cuò)誤。

1 沒(méi)有找到要復(fù)制的文件。

2 用戶按 ctrl+c 終止了 xcopy。

4 出現(xiàn)了初始化錯(cuò)誤。沒(méi)有足夠的內(nèi)存或磁盤空間,或命令行上輸入了無(wú)效的驅(qū)動(dòng)器名稱或語(yǔ)法。

5 出現(xiàn)了磁盤寫入錯(cuò)誤。

范例

要從驅(qū)動(dòng)器 a 將所有文件和子目錄(包括所有空的子目錄)復(fù)制到驅(qū)動(dòng)器 b,請(qǐng)鍵入:

xcopy a:b:/s /e

要包含上一示例中的任何系統(tǒng)或隱藏文件,請(qǐng)按如下所示添加 /h 命令行選項(xiàng):

xcopy a:b:/s /e /h

要使用 \rawdata 目錄中 1993 年 12 月 29 日后更改的文件更新 \reports 目錄中的文件,請(qǐng)鍵入:

xcopy \rawdata \reports /d:12-29-1993

要更新上例中 \reports 中存在的所有文件,而不考慮日期,請(qǐng)鍵入:

xcopy \rawdata \reports /u

如果只想獲得前一個(gè)命令要復(fù)制的文件列表,而不復(fù)制文件,請(qǐng)鍵入:

xcopy \rawdata \reports /d:12-29-1993 /l > xcopy.out

文件 xcopy.out 列出了要復(fù)制的所有文件。

要將 \customer 目錄和所有子目錄復(fù)制到網(wǎng)絡(luò)驅(qū)動(dòng)器 h: 上的目錄 ,保留只讀屬姓,并在 h: 上創(chuàng)建新文件時(shí)對(duì)您做出提示,請(qǐng)鍵入:

xcopy \customer h:\public\address /s /e /k /p

要發(fā)出上一個(gè)命令,確保在 \address 目錄不存在時(shí) xcopy 會(huì)創(chuàng)建該目錄,同時(shí)應(yīng)抑制顯示創(chuàng)建新目錄時(shí)要顯示的消息,請(qǐng)按如下所示添加 /i 命令行選項(xiàng):

xcopy \customer h:\public\address /s /e /k /p /i

可以創(chuàng)建批處理程序執(zhí)行 xcopy 操作,并且使用 if 批處理命令在發(fā)生錯(cuò)誤時(shí)處理退出碼。

例子,使用可替換的 xcopy 源和目標(biāo)參數(shù):

@echo off

rem copyit.bat transfers all files in all subdirectories of

rem the source drive or directory (%1) to the destination

rem drive or directory (%2)

xcopy %1 %2 /s /e

if errorlevel 4 goto lowmemory

if errorlevel 2 goto abort

if errorlevel 0 goto exit

:lowmemory

echo insufficient memory to copy files or

echo invalid drive or command-line syntax.

goto exit

:abort

echo you pressed ctrl+c to end the copy operation.

goto exit

:exit

要使用該批處理程序?qū)?c:\prgmcode 目錄和其子目錄中的所有文件復(fù)制到驅(qū)動(dòng)器 b 中,請(qǐng)鍵入:

copyit c:\prgmcode b:

該命令解釋程序?qū)⒂?c:\prgmcode 替換 %1 與 b:。對(duì)于 %2,然后使用 xcopy 與 /e 和 /s 命令行選項(xiàng)。

如果 xcopy 遇到錯(cuò)誤,批處理程序?qū)⒆x取退出碼并轉(zhuǎn)到相應(yīng) if errorlevel 語(yǔ)句中指示的標(biāo)簽,然后顯示相應(yīng)的消息并退出批處理程序。

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:bat批處理之文件與文件夾操作代碼(附xcopy命令詳解)
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)