http://www.cnblogs.com/yank/p/3926643.html
Dos命令初阶--文件拷贝
1、XCOPY命令
可以在cmd中录入:XCOPY /? 即可查看帮助
帮助:
XCOPY Microsoft Windows [版本 6.2.9200] (c) 2012 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>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] [/J] [/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:\Users\Administrator>
认真读懂这些参数,即可写Copy命令了。
简单的:
xcopy source target
下面介绍几种常见用法:
1)拷贝文件
将C盘的info.txt文件拷贝到D盘根目录。
xcopy C:\info.txt D:\
将命令保存到bat文件,然后在C盘创建info.txt,执行bat文件,即可在D盘看到。
2)指定参数,强制覆盖
如果重复执行,因为文件已经存在,则会给出提示
我们加入强制执行参数:
xcopy C:\info.txt D:\ /Y
我们从上文的帮助中砍下其命令说明:
/Y 取消提示以确认要覆盖 现有目标文件。 /-Y 要提示以确认要覆盖 现有目标文件。
然后,就可以重复执行,每次都会覆盖。
3)拷贝文件,只拷贝更新文件
每次都强制copy,如果源文件比目标目录的文件,日期新,才copy怎么办呢?
增加配置参数:D
xcopy C:\info.txt D:\ /Y/D
对应才参数说明:
/D:m-d-y 复制在指定日期或指定日期以后更改的文件。
如果没有提供日期,只复制那些
源时间比目标时间新的文件。
4)拷贝目录
其实与拷贝文件类似。
xcopy C:\test D:\test /D/Y
如果D:\test文件夹不存在,则会自动创建。
在C盘的test文件中创建文件和文件夹,即可进行Copy。
第一次执行会出现提示:是文件还是目录。
如何指定其为目录,无需客户判定呢?
解决办法:默认是目录:/I
xcopy C:\test D:\test2 /I/D/Y
其使用说明:
/I 如果目标不存在,且要复制多个文件,
则假定目标必须是目录。
5)拷贝目录中包含子目录
根据上面的脚本,只能复制当前目录下的文件及目录
我们可以使用/S 或者/E
xcopy C:\test D:\test2 /E/I/D/Y
这样,其C:\test下的所有文件,包括子目录与空目录,以及子目录的子目录文件,也都成功拷贝到了目标目录。
/S与/E具体解释:
/S 复制目录和子目录,不包括空目录。 /E 复制目录和子目录,包括空目录。 与 /S /E 相同。可以用来修改 /T。
6)如果Copy只读文件
当文件Copy到目标目录,如果其是或者设置为只读文件,则无法覆盖。
这时我们用到了参数/R
xcopy C:\test D:\test /E/R/I/D/Y
具体解释:
/R 覆盖只读文件。
其他的命令参数,我们这里不再介绍,根据自己的需要,认真研究帮助文档。
2、echo命令,增加描述
通过XCOPY命令,可以很轻松的实现copy功能。为了让界面更友好,我们希望将执行的情况展现给用户。
这时候就需要echo命令。
在cmd中输入:echo /?查看帮助
C:\Users\Administrator>echo /? 显示信息,或启用或关闭命令回显。 ECHO [ON | OFF] ECHO [message] 要显示当前回显设置,键入不带参数的 ECHO。
几种常见功能介绍:
1)输出提示信息
格式:ECHO信息内容
echo HelloWorld
执行结果:
2)作为控制批处理命令在执行时是否显示命令行自身的开关
格式:ECHO [ON|OFF]
如果想关闭“ECHO OFF”命令行自身的显示,则需要在该命令行前加上“@”。
在上图中,我们可以看到前面总是有路径信息,很烦,能否只展现dos命令执行信息呢?这就要用到ECHO OFF
@echo OFF
echo HelloWorld
pause
执行结果:
看到了,cmd窗口只剩下dos命令了。简洁漂亮。
3)echo还有其他功能,如改变背景色、输出文件等。这里不再介绍。
3、SET命令,设置变量
用户录入还需要给出具体的提示。
但是,我们希望将文件拷贝到用户指定的目录中去。
需要提供一个交互页面,指导用户进行操作。
这就需要dos的set命令。用来设置变量。
SET [variable=[string]]
variable 指定环境变量名。
string 指定要指派给变量的一系列字符串。 要显示当前环境变量,键入不带参数的 SET。 SET 命令不允许变量名含有等号。
但获取变量时,用%variable%获取
在cmd中可以输入:SET /? 查看详细帮助。
1)设置变量
例子:
@echo OFF set name=Tom echo %name%
2)给出输入提示,则需要/p参数
SET /P variable=[promptString]
看一个helloworld的例子
echo set /p name=请输入您的名字 echo Hello %name%,welcome to dos world. pause
3)用set命令进行简单计算
语法:
SET /A expression
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式评估器很简单并以递减的优先权顺序支持下列操作。
例子:1+1=2
@echo OFF set /p expresion=请输入数学表达式 set /a result = %expresion% echo %result% pause
关于set可以进行计算的功能,还有很多详细的内容,这里不再多说,可以查询相关的资料。
4)set用于字符串处理
1)字符串替换
语法:
%var:str1=str2%
含义:将字符串变量%var%中的str1替换为str2
例子:
@echo OFF set var=坚持就是胜利 echo 替换前的值为:"%var%" set var=%var:是=能% echo 替换后的值为:%var% pause
执行结果:
2)字符串截取
语法:
%var:~[m[,n]]%
方括号表示可选,%为变量标识符,var为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部) %PATH:~10,5%
例子:
@echo OFF set var=坚持就是胜利 echo 截取前:%var%% set var="%var:~0,2%" echo 截取后:%var% pause
结果:
截取长度可以为负数:
语法:
%var:~0,-2%
含义:把字符串倒数第三位开始的所有值付给变量。
负数,代表逆向。
@echo OFF set var=坚持就是胜利 echo 截取前:%var%% set var="%var:~0,-2%" echo 截取后:%var% pause
结果:
其实位置可以省略
语法:
%var:~-2%
含义:从变量var字符串,从末尾开始,截取2个字符。
@echo OFF set var=坚持就是胜利 echo 截取前:%var%% set var="%var:~-2%" echo 截取后:%var% pause
结果:
4、IF命令,判断
设置了路径,我们需要判断是否存在,通过IF语句
在cmd中输入:IF /? 查看if语句的使用帮助。
这里举两个简单例子
1)判断字符串
@echo OFF SET /P var=是否继续执行,请输入Y或N ECHO 输入的值为:"%var%" IF "%var%"=="Y" ( echo 继续执行... )ELSE ( echo 退出中... ) pause
2)判断文件是否存在
@echo OFF set /P var=请输入文件名,包括文件路径,如:C:\Info.txt echo 输入的值为:"%var%" if exist %var%. (echo 文件存在. ) else echo 文件不存在. pause
备注:if与else在同一行中
如果是分行处理,一定要保证括号附近有空格,否则会报语法错误,如下:
@echo OFF set /P var=请输入文件名,包括文件路径,如:C:\Info.txt echo 输入的值为:"%var%" if exist %var% ( echo 文件存在 ) else ( echo 文件不存在 ) pause
执行结果:
5、goto语句,用于语句跳转
如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了。流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。
先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样:
@echo off set /p input=请输入字母A或B: if "%input%"=="A" goto A if "%input%"=="B" goto B pause exit :A echo 您输入的字母是A pause exit :B echo 您输入的字母是B pause exit
6、pause命令,暂停批处理程序
暂停批处理程序,并显示以下消息:
请按任意键继续. . .
7、rem命令,注释
为了bat脚本更好看,需添加注释,就需要rem命令
语法:
REM [COMMENT]
在文件开头写说明性文字如:
REM 拷贝文件 REM CREATEBY YANK REM 2014-08-25
如果注释多行,可以采取goto语句
goto Main 拷贝文件 CREATEBY YANK 2014-08-25 :Main
最后的拷贝脚本如下:
goto MAIN 拷贝文件 CREATEBY YANK 2014-08-25 :MAIN @echo off echo "Copy start" echo 请输入需要拷贝的目标路径 echo 请输入target的路径,如:D:\target :SETTARGET set /p target=请输入target的路径: if "%target%"=="" ( echo 未输入target的路径 echo 补丁文件安装失败 echo 退出... pause goto QUIT ) if not exist "%target%" ( echo 输入的target地址不存在,请检查后重新输入 goto SETTARGET ) else ( xcopy C:\test %target% /E/R/I/D/Y ) :QUIT
其他
1、bat执行,汉字出现乱码
找了很多,最终,将bat文件用记事本打开,另存为ANSI格式即可。之前是UTF-8。
相关推荐
2. **DOS命令2--文件类命令.txt**:这部分可能会进一步讲解与文件操作相关的DOS命令,如`type`显示文件内容,`ren`重命名文件,以及`mkdir`和`rmdir`创建和删除目录等。 3. **DOS命令3--ftp和echo.txt**:`ftp`是...
dos dos命令解析--整理来自网络 ,虽然已经过时了,但是学习好了,还是会给日常生活带来便利
这个完全版的DOS命令全集涵盖了操作系统中的主要命令,包括目录管理、磁盘操作、文件操作以及其他实用命令,旨在帮助用户更有效地管理和维护他们的系统。 一、目录管理命令 1. MD:建立子目录 - 用户可以使用MD...
dos命令学习-dos命令八大经典案例-集合.doc
DOS(Disk Operating System,磁盘操作系统)是早期个人计算机上广泛使用的一种操作系统,它以命令行界面为主,用户通过输入各种命令来执行任务。在本文中,我们将深入探讨DOS命令提示符中的常见命令及其用途。 1. ...
### DOS命令大全详解 #### 一、概述 在信息技术领域,DOS(Disk Operating System)是一种基于命令行界面的操作系统,广泛应用于早期的个人计算机上。随着技术的发展,虽然DOS逐渐被图形用户界面(GUI)所取代,但...
通过一系列简化的DOS命令,用户能够执行常见的计算机操作,如文件管理和系统管理。DOS在个人计算机的历史上扮演了重要角色,尤其是在1980年代到1990年代初期,它是最广泛使用的操作系统之一。 MS-DOS是由Microsoft...
批处理文件是包含一系列DOS命令的文本文件,扩展名为`.bat`,可以一次性执行多个命令。这对于自动化重复任务非常有用。例如,`auto.bat`文件可以包含`cd C:\myfolder`,`copy file1 file2`等命令。 五、DOS命令的...
1. 修改文件权限:打开`System32`目录,找到对应DOS命令的执行文件,例如`cmd.exe`,右键选择属性,进入“安全”选项卡,然后修改用户或组的权限,使其无法读取、写入或执行该文件。这种方法适用于防止非管理员用户...
【DOS命令详解--高手之路,DOS起步】 在计算机早期时代,DOS(Disk Operating System,磁盘操作系统)是个人计算机上广泛使用的操作系统之一。它以命令行界面为主,用户通过输入各种命令来执行任务,如管理文件、...
1. 运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找不到则按照`PATH`命令设置的路径顺序搜索。 2. 多个路径之间以分号`;`隔开。 3. `PATH`命令有三种使用方式: - `PATH [盘符1:][路径1][盘符2:]...
在DOS操作系统中,掌握一些基本的命令是非常重要的,这些命令可以帮助用户进行文件管理、目录操作以及磁盘维护等任务。以下是一些主要的DOS命令的详解: 1. **MD** (Make Directory) - 这个命令用于创建新的子目录...
- 当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若未找到,则按照`PATH`命令设置的路径顺序逐条地到目录中搜索该文件。 - `PATH`命令中的路径若有两条以上,各路径之间以一个分号“;”隔开。 - `PATH`...
Dos批处理命令-遍历文件输出文件路径实例(内含三个例子)-001 ①.遍历文件夹内指定后缀文件(输出详细信息不带路径) ②.遍历文件夹内指定后缀文件(只输出文件全路径) ③.遍历指定磁盘所有的文件(指定后缀全路径...
### DOS命令全集详解 ...以上介绍了DOS环境中的一些常用命令,这些命令对于管理和维护DOS系统的文件和目录结构非常有用。通过了解这些命令的功能和使用方法,可以更加高效地利用DOS系统进行各种操作。
dos常用命令详细讲解 电脑cmd命令大全 实用的dos命令 电脑运行cmd指令大全 cmd代码 windows指令代码大全 命令大全 命令提示符代码大全 dos命令大全入门
DOS(Disk Operating System)是早期个人电脑上广泛使用的操作系统,虽然现在已经被Windows等现代操作系统取代,但在某些特定场合,DOS命令仍然有用武之地。本文将详细介绍标题中提到的一些重要DOS命令及其用途。 ...
dos2unix命令用来将DOS格式的文本文件转换成UNIX格式 最简单的用法就是dos2unix直接跟上文件名:dos2unix file -k:保持输出文件的日期不变 -q:安静模式,不提示任何警告信息。 -V:查看版本 -c:转换模式,模式有...
"w.rar_dos命令_拷贝文件 _文件删除拷贝"这个主题涉及到的是如何使用DOS命令来执行文件操作,包括文件的拷贝和删除。在本篇文章中,我们将深入探讨这些概念,并结合提供的压缩包内的`w.cpp`和`www.pudn.com.txt`文件...