300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > cmd命令之Xcopy介绍_复制文件夹里所有文件到另一个文件夹操作方式

cmd命令之Xcopy介绍_复制文件夹里所有文件到另一个文件夹操作方式

时间:2024-03-07 14:34:58

相关推荐

cmd命令之Xcopy介绍_复制文件夹里所有文件到另一个文件夹操作方式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言一、Xcopy是什么?二、Xcopy参数介绍三、使用示例例1.要将所有文件和子目录(包括任何空子目录)从驱动器 A 复制到驱动器 B,请键入:例2.要在例1中包含任何系统文件或隐藏文件,请添加/h命令行选项,如下所示:例3.本机复制文件或文件夹的实例例4.在局域网中的应用实例例5.要使用自 1993 年 12 月 29 日以来更改的 \Rawdata 目录中的文件更新 \Reports 目录中的文件,请键入:例6.要更新例5中存在于 \Reports 中的所有文件,无论日期如何,请键入:例7.要获取例6中复制的文件列表(即,不实际复制文件),请键入:例8.要将 \Customer 目录和所有子目录复制到网络驱动器 H: 上的目录 \\Public\Address 中,保留只读属性,并在 H: 上创建新文件时提示,请键入:例9.要发出前面的命令,请确保xcopy会创建 \Address 目录(如果它不存在),并禁止在创建新目录时出现消息,添加/i命令行选项,如下所示:例10.您可以创建一个批处理程序来执行xcopy操作,并使用batch if命令在发生错误时处理退出代码。例如,以下批处理程序对xcopy源和目标参数使用可替换参数:例11.此示例复制所有非空目录,以及名称与星号符号匹配的文件。例12、结合/d标签,实现只复制比目标文件新的文件例13、移动A目录的所有文件到B目录例14、xcopy 排除文件拷贝例15、xcopy与EXCLUDE参数的用法示例一:例如,我要将"WebAppBuytoy"目录备份一份到"WebAppBuytoy_bak",但要排除其下面的"WebAppBuytoy\product\ProdImages"子目录,因为它太大且没有变化没有必要备份.示例二: 发布.net的Web项目批处理示例三: 发布.net的Web项目批处理,但排除商品图片目录,因为它太大且不常更新,四、小结

前言

DOS批处理命令,永远是不朽的命令,不仅功能强大,同时,速度也是最快的!但是,很多新手学习计算机,都已经遗忘了本不该忘记的批处理命令

一、Xcopy是什么?

Xcopy是copy的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件;

值得注意的是

1.使用时源盘符、源目标路径名、源文件名至少指定一个;

2.选用/S时对源目录下及其子目录下的所有文件进行COPY。

3.除非指定/E参数,否则/S不会拷贝空目录,若不指定/S参数,则XCOPY只拷贝源目录本身的文件,而不涉及其下的子目录;

4.选用/V参数时,对的拷贝的扇区都进行较验,但速度会降低。

DOS批处理命令,在开发软件或项目的时候,都离不开这些基本的原始的命令。本文,我们来学习Xcopy的参数及实例

二、Xcopy参数介绍

语法:

Xcopy <Source> [<Destination>] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d [:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]]] [{/y | /-y}] [/z] [/b] [/j]

说明1.使用/z如果您在复制阶段失去连接(例如,如果服务器脱机切断连接),它会在您重新建立连接后恢复。/z还显示每个文件完成的复制操作的百分比。2.在 COPYCMD环境变量中 使用/y 您可以在 COPYCMD 环境变量中使用/y 。您可以通过在命令行上使用/-y来覆盖此命令。默认情况下,系统会提示您覆盖。3.复制加密文件将加密文件复制到不支持 EFS 的卷会导致错误。首先解密文件或将文件复制到支持 EFS 的卷。4.附加文件要附加文件,请为目标指定单个文件,但为源指定多个文件(即,使用通配符或 file1+file2+file3 格式)。5.目标路径的默认值如果省略Destination,xcopy命令会将文件复制到当前目录。6.指定Destination是文件还是目录如果Destination不包含现有目录并且不以反斜杠 () 结尾,则会出现以下消息:Does <Destination> specify a file name or directory name on the target(F = file, D = directory)?如果您想将一个或多个文件复制到一个文件中,请按 F。如果要将文件复制到目录中,请按 D。您可以使用/i命令行选项禁止显示此消息,如果源是多个文件或目录,则xcopy会假定目标是一个目录。7.使用xcopy命令设置目标文件的归档属性xcopy命令创建具有归档属性集的文件,无论该属性是否已在源文件中设置。8.比较xcopy和diskcopy如果您的磁盘包含子目录中的文件,并且您想将其复制到具有不同格式的磁盘,请使用xcopy命令而不是diskcopy。因为diskcopy命令逐个磁道复制磁盘,所以源磁盘和目标磁盘必须具有相同的格式。xcopy命令没有这个要求。除非您需要完整的磁盘映像副本,否则请使用xcopy 。9.xcopy的退出代码要处理xcopy返回的退出代码,请在批处理程序的if命令行上使用ErrorLevel参数。有关使用if处理退出代码的批处理程序示例,请参阅附加参考。下表列出了每个退出代码和说明。退出代码描述0文件复制无误。1找不到要复制的文件。2用户按下 CTRL+C 来终止xcopy。4发生初始化错误。没有足够的内存或磁盘空间,或者您在命令行中输入了无效的驱动器名称或无效的语法。5发生磁盘写入错误。

三、使用示例

例1.要将所有文件和子目录(包括任何空子目录)从驱动器 A 复制到驱动器 B,请键入:

xcopy a: b: /s /e

例2.要在例1中包含任何系统文件或隐藏文件,请添加/h命令行选项,如下所示:

xcopy a: b: /s /e /h

例3.本机复制文件或文件夹的实例

代码如下(示例):

Xcopy d:\UpdateFiles e:\123 /s /e /y

命令解释:将D盘的UpdateFiles文件夹中包含的所有东西,全部复制到E盘的123文件夹内;/s /e /y参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。

例4.在局域网中的应用实例

代码如下(示例):

Xcopy \\192.168.0.168\UpdateFiles e:\123 /s /e /y

命令解释:将192.168.0.168这台计算机的名称为UpdateFiles的文件夹内的所有东西,全部复制到本机的e:\123 文件夹;参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。

例5.要使用自 1993 年 12 月 29 日以来更改的 \Rawdata 目录中的文件更新 \Reports 目录中的文件,请键入:

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

例6.要更新例5中存在于 \Reports 中的所有文件,无论日期如何,请键入:

xcopy \rawdata \reports /u

例7.要获取例6中复制的文件列表(即,不实际复制文件),请键入:

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

例8.要将 \Customer 目录和所有子目录复制到网络驱动器 H: 上的目录 \Public\Address 中,保留只读属性,并在 H: 上创建新文件时提示,请键入:

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

例9.要发出前面的命令,请确保xcopy会创建 \Address 目录(如果它不存在),并禁止在创建新目录时出现消息,添加/i命令行选项,如下所示:

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

例10.您可以创建一个批处理程序来执行xcopy操作,并使用batch if命令在发生错误时处理退出代码。例如,以下批处理程序对xcopy源和目标参数使用可替换参数:

@echo offrem COPYIT.BAT transfers all files in all subdirectories ofrem the source drive or directory (%1) to the destinationrem drive or directory (%2)xcopy %1 %2 /s /eif errorlevel 4 goto lowmemoryif errorlevel 2 goto abortif errorlevel 0 goto exit:lowmemoryecho Insufficient memory to copy files orecho invalid drive or command-line syntax.goto exit:abortecho You pressed CTRL+C to end the copy operation.goto exit:exit

要使用前面的批处理程序将 C:\Prgmcode 目录及其子目录中的所有文件复制到驱动器 B,请键入:

copyit c:\prgmcode b:

命令解释器用 C:\Prgmcode代替%1和B:代替%2,然后使用带有/e和/s命令行选项的xcopy 。如果xcopy遇到错误,批处理程序读取退出代码并转到相应的IF ERRORLEVEL语句中指示的标签,然后显示相应的消息并退出批处理程序。

例11.此示例复制所有非空目录,以及名称与星号符号匹配的文件。

xcopy .\toc*.yml ..\..\Copy-To\ /S /Yrem Output example.rem .\d1\toc.ymlrem .\d1\d12\toc.ymlrem .\d2\toc.ymlrem 3 File(s) copied

在前面的示例中,这个特定的源参数值.\toc*.yml 会复制相同的 3 个文件,即使它的两个路径字符.\已被删除。但是,如果从源参数中删除星号通配符,则不会复制任何文件,使其仅为.\toc.yml。

例12、结合/d标签,实现只复制比目标文件新的文件

假如现在c:\a文件夹下的所有文件和d:\a下的文件相同(修改日期及内容)

c:\a下的一个文件被别人修改了或者添加了一个文件!

能否写个bat,判断一下c:\a文件夹下的每个文件的最后修改日期是不是在前两天内!如果是,则复制到d:\a下的相应目录(要是原来有,则覆盖),如果不是,则不复制了.

@echo off echo y|xcopy c:\a /d /e /r /k d:\a\ pause

经测试如果目标文件与源文件相同则不复制。确实一定程度了减少了对硬盘的读写。

例13、移动A目录的所有文件到B目录

移动A目录的所有文件到B目录,且保留A目录的目录结构;如果A下面有子目录,则在B中也创建相同目录,并把对应目录的文件移动到B的相同目录结构位置;(不移动系统文件和隐藏文件)

@echo offrem 复制指定目录的目录结构到目标目录,并移动的文件到目标目录,且保留目录结构(空目录也复制),不保留系统文件和隐藏文件set ObjPath=\\192.168.0.106\Temp Files\test\BPD\sourceFiles\ZOFUNDset DestPath=E:\Documents\ttFiles\sourceFiles\cesset DestExt=* xcopy /e /c /y "%ObjPath%\%DestExt%" "%DestPath%"del /a /s /q /f "%ObjPath%\"

例14、xcopy 排除文件拷贝

@echo off::xcopy /y /s /e /I /exclude:uncopy.txt E:\NetWorkCMDA\CMDA0418\Portals\0 E:\Mu\Portals\0::xcopy /y /s /e /I /exclude:uncopy.txt C:\Docume~1\wangchao\桌面\MyTest C:\Docume~1\wangchao\桌面\aaaecho 返回默认情况下应用程序存储数据的位置=%APPDATA%echo 返回当前目录字符串=%CD%echo 返回计算机的名称=%COMPUTERNAME% echo 返回命令行解释器可执行程序的准确路径=%COMSPEC% echo 返回当前登录的用户的名称=%USERNAME%echo 返回包含用户帐户的域的名称=%USERDOMAIN%echo 返回当前用户的配置文件的位置=%USERPROFILE%set myExist=%windir%\TestUncopyset myCommand=%windir%\TestUncopy&echo TestUncopyif not exist %myExist% mkdir %myCommand%set myExist1=%windir%\TestUncopy\aset myCommand1=%windir%\TestUncopy\a&echo TestUncopy\aif not exist %myExist1% mkdir %myCommand1%set myExist2=%windir%\TestUncopy\aaset myCommand2=%windir%\TestUncopy\aa&echo TestUncopy\aaif not exist %myExist2% mkdir %myCommand2%set myExist3=%windir%\TestUncopy\a\bset myCommand3=%windir%\TestUncopy\a\b&echo TestUncopy\a\bif not exist %myExist3% mkdir %myCommand3%set myExist4=%windir%\TestUncopySourceset myCommand4=%windir%\TestUncopySource&echo TestUncopySourceif not exist %myExist4% mkdir %myCommand4%set myExist5=%windir%\TestUncopy\aaaset myCommand5=%windir%\TestUncopy\aaa&echo TestUncopy\aaaif not exist %myExist5% mkdir %myCommand5%set copyFile=%windir%\system\COMMDLG.DLLif not exist %myExist1%\m1.dll copy %copyFile% %myExist1% /yif not exist %myExist2%\m2.dll copy %copyFile% %myExist2% /yif not exist %myExist3%\m3.dll copy %copyFile% %myExist3% /yif not exist %myExist5%\m5.dll copy %copyFile% %myExist5% /yif not exist %myExist1%\m1.dll ren %myExist1%\COMMDLG.DLL m1.dllif not exist %myExist2%\m2.dll ren %myExist2%\COMMDLG.DLL m2.dllif not exist %myExist3%\m3.dll ren %myExist3%\COMMDLG.DLL m3.dllif not exist %myExist5%\m5.dll ren %myExist5%\COMMDLG.DLL m5.dllif not exist %myExist5%\txt1.exe copy %windir%\system32\notepad.exe %myExist5% /yif not exist %myExist5%\txt1.exe ren %myExist5%\notepad.exe txt1.exeif not exist %myExist5%\txt2.exe copy %windir%\system32\notepad.exe %myExist5% /yif not exist %myExist5%\txt2.exe ren %myExist5%\notepad.exe txt2.exeif not exist %myExist5%\txt3.exe copy %windir%\system32\notepad.exe %myExist5% /yif not exist %myExist5%\txt3.exe ren %myExist5%\notepad.exe txt3.exeset OutFile=uncopy.txt::MyDir=\aa\ 排除的文件夹::MySubDir=\a\b\ 排除的子文件夹::MyFile=m3.dll 排除的文件::set MyFile1=.exe 排除的类型文件set MyDir=\aa\set MySubDir=\a\b\set MyFile=m3.dllset MyFile1=.exeecho %MyDir% >uncopy.txtecho %MySubDir% >>uncopy.txtecho %MyFile% >>uncopy.txtecho %MyFile1% >>uncopy.txtxcopy /y /s /e /I /exclude:uncopy.txt %windir%\TestUncopy %windir%\TestUncopySource::if exist %windir%\TestUncopy del %windir%\TestUncopy /s /q&rd %windir%\TestUncopy /s /q &echo del_rd %windir%\TestUncopy::if exist %windir%\TestUncopySource del %windir%\TestUncopySource /s /q&rd %windir%\TestUncopySource /s /q &echo del_rd %windir%\TestUncopySource::del uncopy.txtstart %myExist%start %myExist4%echo 是否删除(Y/N)set /p shuru=::if %shuru:~0,1%==y (echo %shuru:~0,1%&goto del)::if %shuru:~0,1%==Y (echo %shuru:~0,1%&goto del)::if %shuru:~0,1%==n (echo %shuru:~0,1%&goto End)::if %shuru:~0,1%==N (echo %shuru:~0,1%&goto End) if %shuru:~0,1%==y (cls&goto del)if %shuru:~0,1%==Y (cls&goto del)if %shuru:~0,1%==n (cls&goto End)if %shuru:~0,1%==N (cls&goto End) pause:delif exist %windir%\TestUncopy del %windir%\TestUncopy /s /q&rd %windir%\TestUncopy /s /q &echo del_rd %windir%\TestUncopyif exist %windir%\TestUncopySource del %windir%\TestUncopySource /s /q&rd %windir%\TestUncopySource /s /q &echo del_rd %windir%\TestUncopySourceif exist uncopy.txt del uncopy.txt:Endecho.& ::换行echo 操作已经完成timeout /t 3 /nobreakclsecho 是否重新调用(Y/N)--Y:调用 N:退出set /p shuru=if %shuru:~0,1%==y (cls&goto MyCall)if %shuru:~0,1%==Y (cls&goto MyCall)if %shuru:~0,1%==n (cls&goto EndExit)if %shuru:~0,1%==N (cls&goto EndExit) :EndExitexit :MyCalluncopy.batpause

例15、xcopy与EXCLUDE参数的用法

示例一:例如,我要将"WebAppBuytoy"目录备份一份到"WebAppBuytoy_bak",但要排除其下面的"WebAppBuytoy\product\ProdImages"子目录,因为它太大且没有变化没有必要备份.

步骤一,新建一个文本文件叫"EXCLUDE.txt",内容如下:

product\ProdImages

步骤二,命令(包含子目录,不提示覆盖):

xcopy WebAppBuytoy WebAppBuytoy_bak /e /EXCLUDE:EXCLUDE.txt /y

示例二: 发布.net的Web项目批处理

deploy_web.cmd

xcopy G:\WebSites\BuytoySolutionV2\WebAppBuytoy web /EXCLUDE:web_exclude.txt /i /e /y@rem 将排除的*.css文件补回xcopy G:\WebSites\BuytoySolutionV2\WebAppBuytoy\App_Themes web\App_Themes /i /e /y@pause

web_exclude.txt:

.cs.vb.pdb.csproj.csproj.user.Publish.xml.___.cmd.rar\App_Themes\Theme1\App_Themes\Theme1\\obj\obj\\Properties\Properties\\App_Data\\App_Classes\

示例三: 发布.net的Web项目批处理,但排除商品图片目录,因为它太大且不常更新,

重复使用上面那个排除文件“web_exclude.txt”,再加一个排除商品图片的排除文件

“web_exclude_prodImages.txt”,这样要在一个命令中使用多个排除文件列表,用到加号“+”:

deploy_web_排除商品图片.cmd

xcopy G:\WebSites\BuytoySolutionV2\WebAppBuytoy web /EXCLUDE:web_exclude.txt+web_exclude_prodImages.txt /i /e /y@rem 将排除的*.css文件补回xcopy G:\WebSites\BuytoySolutionV2\WebAppBuytoy\App_Themes web\App_Themes /i /e /y@pause

web_exclude_prodImages.txt

\product\ProdImages\product\ProdImages\

到此这篇关于Xcopy命令参数使用介绍的文章就介绍到这了。

四、小结

将此Xcopy命令与python结合使用可大大提高工作效率

批处理真好用…

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。