Board logo

标题: [原创] 【续】[一日一教学](14)文件替换:replace [打印本页]

作者: Hello123World    时间: 2011-8-24 22:48     标题: 【续】[一日一教学](14)文件替换:replace

本帖最后由 Hello123World 于 2011-8-25 16:23 编辑

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html

帮助信息:
  1. 替换文件。
  2. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
  3. REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]
  4.   [drive1:][path1]filename 指定源文件。
  5.   [drive2:][path2]         指定要替换文件的目录。
  6.   /A                       把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使
  7. 用。
  8.   /P                       替换文件或加入源文件之前会先提示您进行确认。
  9.   /R                       替换只读文件以及未受保护的文件。
  10.   /S                       替换目标目录中所有子目录的文件。不能与 /A 命令开关搭
  11. 配使用。
  12.   /W                       等您插入磁盘以后再运行。
  13.   /U                       只会替换或更新比源文件日期早的文件。不能与 /A 命令行
  14. 开关搭配使用。
复制代码
命令概括:
replace,全英文replace,意为:替换;下辖6个参数。
  1. REPLACE [drive1:][path1]filename [drive2:][path2]
复制代码
replace的使用条件:
::参照语法,使用光杆replace条件有两个
1.替换和被替换的文件要同名(根据:目标只有文件路径,没有文件名)
2.两文件必须在不同的路径(根据:同名文件不能在同一个文件夹)
经测试确实如此。

参数详解:
  1. /A                       把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使用。
复制代码
/a,英文全称add,意为:添加。
/a参数不能和/s、/u在一起使用。
/a参数与其说是“把新文件加入目标目录”,不如说是“复制新文件到目标目录”,所以raplace /a 可以当 copy /y 用,不过语法上要注意一下差别。
例子:将1.txt复制到c盘根目录:
  1. C:\Users\HELLOW~1\Desktop>replace /a 1.txt c:\
复制代码
  1. /P                       替换文件或加入源文件之前会先提示您进行确认。
复制代码
/p,英文全称prompt,意为:提示。
顾名思义,就是提示,效果:
  1. C:\Users\HELLOW~1\Desktop>replace /p 1.txt c:\
  2. 是否替换 C:\1.txt? (Y/N)
复制代码
  1. /R                       替换只读文件以及未受保护的文件。
复制代码
/r,英文全称read,意为:阅读;在此可引申为只读文件。
竟然有这个参数,可以预见,replace默认是不能替换只读文件的,经测试确实如此。
  1. C:\Users\HELLOW~1\Desktop>attrib +r c:\1.txt
  2. C:\Users\HELLOW~1\Desktop>replace  1.txt c:\
  3. 拒绝访问 - C:\1.txt
  4. 未替换文件
  5. C:\Users\HELLOW~1\Desktop>replace /r 1.txt c:\
  6. 正在替换 C:\1.txt
复制代码
  1.   /S                       替换目标目录中所有子目录的文件。不能与 /A 命令开关搭
  2. 配使用。
复制代码
/s,英文全称subdirectory,意为:子目录。
/s可以替换指定目录下所有子目录的文件,
例如:有两个txt文件,他们的完全路径分别是 c:\1.txt c:\hello\1.txt,用/s参数一次把他们全部替换。
  1. C:\Users\HELLOW~1\Desktop>replace /s /r 1.txt c:\
  2. 正在替换 C:\1.txt
  3. 正在替换 C:\hello\1.txt
复制代码
  1. /W                       等您插入磁盘以后再运行。
复制代码
/w,英文全称wait,意为:等待。
这命令就不解释了,磁盘应该指的是软盘;由此命令不难看出“吻到死”对cmd.exe只有一种“萧规曹随”的“敝帚自珍”之情,没有“与时俱进”的“I love you,I need you,I want you”的强烈爱情,是的,windows不爱cmd,他只是珍惜她而已……
  1.   /U                       只会替换或更新比源文件日期早的文件。不能与 /A 命令行
  2. 开关搭配使用。
复制代码
/u,英文全称update,意为:更新。
这个参数很神奇,replace中数这个参数最得我心。
例如:先创建两个文本,c盘的先创建,d盘的后创建
  1. C:\Users\HELLOW~1\Desktop>echo I'm first!>c:\1.txt
  2. C:\Users\HELLOW~1\Desktop>echo I'm Second!>d:\1.txt
复制代码
然后加/u参数替换c:\1.txt到d盘
  1. C:\Users\HELLOW~1\Desktop>d:\1.txt
  2. C:\Users\HELLOW~1\Desktop>replace /u c:\1.txt d:\
  3. C:\Users\HELLOW~1\Desktop>type d:\1.txt
  4. I'm Second!
复制代码
可以看出d盘的1.txt并没有被替换,这是为什么?因为d:\1.txt后于c:\1.txt的创建,换句话说:d:\1.txt比c:\1.txt新。

竟然如此,那么反过来自然就成立了:
  1. C:\Users\HELLOW~1\Desktop>replace /u d:\1.txt c:\
  2. 正在替换 C:\1.txt
  3. C:\Users\HELLOW~1\Desktop>type c:\1.txt
  4. I'm Second!
复制代码

作者: yangfresh    时间: 2019-6-14 09:55

怎么没人了
作者: 秀才    时间: 2019-9-14 10:41

这个替换命令,我怎么试不出来呢?一直提示目录找不到
我是 WIN10




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2