当前位置:网站首页 > 技术博客 > 正文

bat批处理教程

1 建

bat 文件

自动执行复制,删除

命令

例1:以下是复制cd.dll

文件

windows

system32的

bat 文件

内容:

copy cd.dll %windir%system32

例2:下面一行是卸载

windows

system32目录中的cd.dll,即把上面复制的

文件

删除:

del %windir%system32cd.dll

例3:删除download

文件

夹中的

文件

,例子如下:

del C:DOWNLOAD*.*

[注意]:这里的del

命令

只能删

文件

,不能删

文件

夹。要删除

文件

夹得用rd

命令

,如下:

rd Filemon

这里filemon

文件

夹和该

bat 文件

在同一目录下,就省去具体路径了。但rd只能删除空

文件

夹.

要删除

文件

夹及其里面的所有子目录和

文件

,用rd

命令

带/s /q参数,

/s参数表示删除该

文件

夹及其下面的子目录和

文件

/q参数表示,不需要确认

范例如下:

rd 123 /s /q

2 创建

文件

例:在E:My documents下面一次创建3个新

文件

夹:Newfolder1,Newfolder2,Newfolder3

@echo off

md "E:My documentsNewfolder1"

md "E:My documentsNewfolder2"

md "E:My documentsNewfolder3"

3 执行程序,

打开 文件

例1:执行C盘下的WinWord.exe程序

start C:WinWord.exe

例2:用某个程序

打开

某个

文件

,如用TheWorld.exe

打开

一个htm

文件

start d:TheWorldTheWorld.EXE C:我有一个恋爱.htm

[注意]:不论是程序或

文件

路径中含有空格,都必须用引号括起来:

start d:TheWorldTheWorld.EXE "e:My documents我有一个恋爱.htm"

所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统

XCOPY 还有众多的功能, 是加参数来完成的。上面的/s /e 参数的作用分别是把子目录和空目录都复制过去,一些使用举例和参数说明如下:

1、如只是单纯地复制 E: 盘上所有

文件

到 D: 盘上,就输入“ xcopy e:*.* d: /s /h "就行啦!如果在复制过程中,你不要他复制

文件

啦!那就按键盘热键“Ctrl " +"Pause /break" 二个热键 来中断复制。

2、如果想把E: 盘上所有

文件

复制到D:盘上,分为今天复制一点,明天再接着复制一些,后天再接着复制一些。或者是某种原因上次没有复制完成,今天想接着复制。(这种情况是经常在复制

文件

中出现的)那可怎么办才好呢?

那就输入“ xcopy e:*.* d: /s /h /d /y ”就行啦。他能查出那些

文件

是已经复制过去啦,那些

文件

还没有复制过去的。

3、当然我们也会碰到这种情况,一些

文件

我们已经修改过啦!网上面又有最新版本的啦。原来备份的那份

文件

我们要及时更新啦。那怎么才能同步更新呢?当然我们可以把最新的好份

文件

复制过去,这也是一种解决办法。

如果修改的

文件

有很多的,自己到时候也记不清楚那份

文件

是更新过的。这么多的原来备份的那份

文件

都要更新,都要复制过去,可不是件省力气的活,而且容易出错和一些

文件

被忘记啦!

那和上面一样也同样输入" xcopy e:*.* d: /s /h /d /y "就行啦!

4、还有一种情况我们经常也碰到的,因为复制某个

文件

出错或者这个

文件

在使用中,而停止了复制工作,(比如,复制C 盘上的

windows

xp )我们这时候想跳过某个出错的

文件

和某个正在使用中

文件

而继续复制其他

文件

在多加入一个参数" /c "就是 " xcopy e:*.* d: /s /h /d /c /y "就行啦!

5、有时候我们想XCOPY 变为自动复制,并且复制完成后关闭电脑,可以建立一个

批处理 文件

,新建文本文档,更名为XCOPY.

BAT

当然扩展名原来是TXT 格式的要更名为

BAT

在这个 XCOPY.

BAT

中输入

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

shutdown -s

然后双击xcopy.

bat

运行它,你这时候可以出去玩啦。电脑会自己复制备份完成

文件

然后自动关闭电脑。

XCOPY source [destination] 参数(如 /s /e)

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 用重新启动模式复制网络

文件

Xcopy

复制

文件

和目录,包括子目录。

语法

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]

参数

Source

必需的。指定要复制的

文件

的位置和名称。该参数必须包含驱动器或路径。

Destination

指定要复制的

文件

的目标。该参数可以包含驱动器盘符和冒号、目录名、

文件

名或者它们的组合。

/w

在开始复制

文件

之前将显示以下消息并等待您的响应:

Press any key to begin copying file(s)

/p

提示您确认是否要创建每个目标

文件

/c

忽略错误。

/v

在写入目标

文件

时验证每个

文件

,以确保目标

文件

与源

文件

完全相同。

/q

禁止显示 xcopy 消息。

/f

复制时显示源

文件

名和目标

文件

名。

/l

显示要复制的

文件

列表。

/g

创建解密的目标

文件

/d[:mm-dd-yyyy]

只复制那些在指定日期或指定日期之后更改过的源

文件

。如果不包括 mm-dd-yyyy 值,xcopy 会复制比现有 Destination

文件

新的所有 Source

文件

。该

命令

行选项使您可以更新更改过的

文件

/u

只从 source 复制 destination 中已有的

文件

/i

如果 Source 是一个目录或包含通配符,而 Destination 不存在,xcopy 会假定 destination 指定目录名并创建一个新目录。然后,xcopy 会将所有指定

文件

复制到新目录中。默认情况下,xcopy 将提示您指定 destination 是

文件

还是目录。

/s

复制非空的目录和子目录。如果省略 /s,xcopy 将在一个目录中工作。

/e

复制所有子目录,包括空目录。同时使用 /e、/s 和 /t

命令

行选项。

/t

只复制子目录结构(即目录树),不复制

文件

。要复制空目录,必须包含 /e

命令

行选项。

/k

复制

文件

,如果源

文件

具有只读属姓,则在目标

文件

中保留该属姓。默认情况下,xcopy 会删除只读属姓。

/r

复制只读

文件

/h

复制具有隐藏和系统

文件

属姓的

文件

。默认情况下,xcopy 不复制隐藏或系统

文件

/a

只复制那些具有存档

文件

属姓设置的源

文件

。/a 不修改源

文件

的存档

文件

属姓。有关如何通过使用 attrib 来设置存档

文件

属姓的信息,请参阅“”。

/m

复制具有存档

文件

属姓设置的源

文件

。与 /a 不同,/m 关闭在源中指定的

文件

的存档

文件

属姓。有关如何通过使用 attrib 来设置存档

文件

属姓的信息,请参阅“”。

/n

使用 NTFS 短

文件

或目录名创建副本。将

文件

或目录从 NTFS 卷复制到 FAT 卷或者当目标

文件

系统需要 FAT

文件

系统命名约定(即 8.3 个字符)时,需要 /n。目标

文件

系统可以是 FAT 或 NTFS。

/o

复制

文件

所有权与自由选择的访问控制列表 (DACL) 信息。

/x

复制

文件

审核设置和系统访问控制列表 (SACL) 信息(包含 /o)。

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

指定包含字符串的

文件

列表。

/y

禁止提示您确认要覆盖现存的目标

文件

/-y

提示您确认要覆盖现有目标

文件

/z

在可重启模式中通过网络复制。

/?

命令

提示符显示帮助。

注释

使用 /v

XOX

使用 /exclude

列出每个

文件

的单独行中的每个字符串。如果列出的任何字符串与要复制的

文件

的绝对路径的任何部分匹配,就从复制进程排除该

文件

。例如,如果指定字符串 "Obj",则会排除 Obj 目录下的所有

文件

。如果指定字符串 ".obj",则排除具有 .obj 扩展名的所有

文件

使用 /z

如果在复制过程中丢失连接(例如,如果用于连接的服务器脱机),复制过程将在重新建立连接后恢复。/z 也显示每个

文件

完成的复制操作的百分比。

在 COPYCMD 环境变量中使用 /y

可在 COPYCMD 环境变量中使用 /y。在

命令

行上使用 /-y 可以覆盖该

命令

。默认情况下,会提示您覆盖,除非您从

批处理 脚本

内运行 copy。

复制加密的

文件

将加密

文件

复制到不支持 EFS 的卷会导致错误。应首先解密

文件

或将

文件

复制到支持 EFS 的卷中。

附属

文件

要附加

文件

,请指定单个目标

文件

,多个源

文件

(使用通配符或

文件

1 +

文件

2 +

文件

3 格式)。

Destination 的默认值

如果省略 Destination,xcopy

命令

文件

复制到当前目录。

指定 Destination 是

文件

还是目录

如果 Destination 不包含现有目录且不以反斜杠 () 结尾,会出现下列消息:

Does destination specify a file name

or directory name on the target

(F = file, D = directory)?

如果要将一个或多个

文件

复制到一个

文件

,请按 F。如果要将一个或多个

文件

复制到一个目录,请按 D。

使用 /i

命令

行选项可抑制显示该消息,从而导致 xcopy 认定在源是多个

文件

或一个目录的情况下,目标是一个目录。

使用 xcopy

命令

设置 Destination

文件

的存档属姓

xcopy

命令

创建具有存档属姓设置的

文件

,无论源

文件

中是否设定了此属姓。有关

文件

属姓和 attrib 的详细信息,请参阅“”。

比较 xcopy 和 diskcopy

如果磁盘的子目录中包含

文件

,要将其复制到具有不同格式的磁盘中,请使用 xcopy

命令

,而不要使用 diskcopy。因为 diskcopy

命令

是一个磁道接一个磁道地复制磁盘,所以需要源磁盘和目标磁盘的格式必须相同。xcopy

命令

没有该要求。通常情况下请使用 xcopy,除非您需要完整的磁盘图像副本。

xcopy 的退出码

要处理 xcopy 返回的退出码,请在

批处理

程序的 if

命令

行上使用 errorlevel 参数。有关使用“if”处理退出码的

批处理

程序的范例,请参阅“”。下表列出每一个退出码和说明。

退出码 说明

0

文件

复制没有错误。

1 没有找到要复制的

文件

2 用户按 CTRL+C 终止了 xcopy。

4 出现了初始化错误。没有足够的内存或磁盘空间,或

命令

行上输入了无效的驱动器名称或语法。

5 出现了磁盘写入错误。

范例

要从驱动器 A 将所有

文件

和子目录(包括所有空的子目录)复制到驱动器 B,请键入:

xcopy a:b:/s /e

要包含上一示例中的任何系统或隐藏

文件

,请按如下所示添加 /h

命令

行选项:

xcopy a:b:/s /e /h

要使用 Rawdata 目录中 1993 年 12 月 29 日后更改的

文件

更新 Reports 目录中的

文件

,请键入:

xcopy awdata eports /d:12-29-1993

要更新上例中 Reports 中存在的所有

文件

,而不考虑日期,请键入:

xcopy awdata eports /u

如果只想获得前一个

命令

要复制的

文件

列表,而不复制

文件

,请键入:

xcopy awdata eports /d:12-29-1993 /l > xcopy.out

文件

Xcopy.out 列出了要复制的所有

文件

要将 Customer 目录和所有子目录复制到网络驱动器 H: 上的目录 \PublicAddress,保留只读属姓,并在 H: 上创建新

文件

时对您做出提示,请键入:

xcopy customer h:publicaddress /s /e /k /p

要发出上一个

命令

,确保在 Address 目录不存在时 xcopy 会创建该目录,同时应抑制显示创建新目录时要显示的消息,请按如下所示添加 /i

命令

行选项:

xcopy customer h:publicaddress /s /e /k /p /i

可以创建

批处理

程序执行 xcopy 操作,并且使用 if

批处理 命令

在发生错误时处理退出码。例如,以下的

批处理

程序使用可替换的 xcopy 源和目标参数:

@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

要使用该

批处理

程序将 C:Prgmcode 目录和其子目录中的所有

文件

复制到驱动器 B 中,请键入:

copyit c:prgmcode b:

命令

解释程序将用 C:Prgmcode 替换 %1 与 B:。对于 %2,然后使用 xcopy 与 /e 和 /s

命令

行选项。如果 xcopy 遇到错误,

批处理

程序将读取退出码并转到相应 IF ERRORLEVEL 语句中指示的标签,然后显示相应的消息并退出

批处理

程序。

  • 上一篇: java set集合有序吗
  • 下一篇: perimeter函数
  • 版权声明


    相关文章:

  • java set集合有序吗2025-05-13 23:01:05
  • c语言bsearch函数2025-05-13 23:01:05
  • 图形验证码redis存储2025-05-13 23:01:05
  • c语言三维图代码2025-05-13 23:01:05
  • 简述uboot的作用2025-05-13 23:01:05
  • perimeter函数2025-05-13 23:01:05
  • python练手小项目2025-05-13 23:01:05
  • python中pyc文件2025-05-13 23:01:05
  • js设置页面跳转2025-05-13 23:01:05
  • 原生js post2025-05-13 23:01:05