标题: [原创] 【续】[一日一教学](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
帮助信息:- 替换文件。
-
- REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]
- REPLACE [drive1:][path1]filename [drive2:][path2] [/P] [/R] [/S] [/W] [/U]
-
- [drive1:][path1]filename 指定源文件。
- [drive2:][path2] 指定要替换文件的目录。
- /A 把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使
- 用。
- /P 替换文件或加入源文件之前会先提示您进行确认。
- /R 替换只读文件以及未受保护的文件。
- /S 替换目标目录中所有子目录的文件。不能与 /A 命令开关搭
- 配使用。
- /W 等您插入磁盘以后再运行。
- /U 只会替换或更新比源文件日期早的文件。不能与 /A 命令行
- 开关搭配使用。
复制代码
命令概括:
replace,全英文replace,意为:替换;下辖6个参数。- REPLACE [drive1:][path1]filename [drive2:][path2]
复制代码
replace的使用条件:
::参照语法,使用光杆replace条件有两个
1.替换和被替换的文件要同名(根据:目标只有文件路径,没有文件名)
2.两文件必须在不同的路径(根据:同名文件不能在同一个文件夹)
经测试确实如此。
参数详解:- /A 把新文件加入目标目录。不能和/S 或 /U 命令行开关搭配使用。
复制代码
/a,英文全称add,意为:添加。
/a参数不能和/s、/u在一起使用。
/a参数与其说是“把新文件加入目标目录”,不如说是“复制新文件到目标目录”,所以raplace /a 可以当 copy /y 用,不过语法上要注意一下差别。
例子:将1.txt复制到c盘根目录:- C:\Users\HELLOW~1\Desktop>replace /a 1.txt c:\
复制代码
- /P 替换文件或加入源文件之前会先提示您进行确认。
复制代码
/p,英文全称prompt,意为:提示。
顾名思义,就是提示,效果:- C:\Users\HELLOW~1\Desktop>replace /p 1.txt c:\
- 是否替换 C:\1.txt? (Y/N)
复制代码
复制代码
/r,英文全称read,意为:阅读;在此可引申为只读文件。
竟然有这个参数,可以预见,replace默认是不能替换只读文件的,经测试确实如此。- C:\Users\HELLOW~1\Desktop>attrib +r c:\1.txt
-
- C:\Users\HELLOW~1\Desktop>replace 1.txt c:\
- 拒绝访问 - C:\1.txt
- 未替换文件
-
- C:\Users\HELLOW~1\Desktop>replace /r 1.txt c:\
- 正在替换 C:\1.txt
复制代码
- /S 替换目标目录中所有子目录的文件。不能与 /A 命令开关搭
- 配使用。
复制代码
/s,英文全称subdirectory,意为:子目录。
/s可以替换指定目录下所有子目录的文件,
例如:有两个txt文件,他们的完全路径分别是 c:\1.txt c:\hello\1.txt,用/s参数一次把他们全部替换。- C:\Users\HELLOW~1\Desktop>replace /s /r 1.txt c:\
- 正在替换 C:\1.txt
- 正在替换 C:\hello\1.txt
复制代码
复制代码
/w,英文全称wait,意为:等待。
这命令就不解释了,磁盘应该指的是软盘;由此命令不难看出“吻到死”对cmd.exe只有一种“萧规曹随”的“敝帚自珍”之情,没有“与时俱进”的“I love you,I need you,I want you”的强烈爱情,是的,windows不爱cmd,他只是珍惜她而已……- /U 只会替换或更新比源文件日期早的文件。不能与 /A 命令行
- 开关搭配使用。
复制代码
/u,英文全称update,意为:更新。
这个参数很神奇,replace中数这个参数最得我心。
例如:先创建两个文本,c盘的先创建,d盘的后创建- C:\Users\HELLOW~1\Desktop>echo I'm first!>c:\1.txt
-
- C:\Users\HELLOW~1\Desktop>echo I'm Second!>d:\1.txt
复制代码
然后加/u参数替换c:\1.txt到d盘- C:\Users\HELLOW~1\Desktop>d:\1.txt
-
- C:\Users\HELLOW~1\Desktop>replace /u c:\1.txt d:\
-
- C:\Users\HELLOW~1\Desktop>type d:\1.txt
- I'm Second!
复制代码
可以看出d盘的1.txt并没有被替换,这是为什么?因为d:\1.txt后于c:\1.txt的创建,换句话说:d:\1.txt比c:\1.txt新。
竟然如此,那么反过来自然就成立了:- C:\Users\HELLOW~1\Desktop>replace /u d:\1.txt c:\
- 正在替换 C:\1.txt
-
- C:\Users\HELLOW~1\Desktop>type c:\1.txt
- I'm Second!
复制代码
作者: yangfresh 时间: 2019-6-14 09:55
怎么没人了
作者: 秀才 时间: 2019-9-14 10:41
这个替换命令,我怎么试不出来呢?一直提示目录找不到
我是 WIN10
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |