当前位置:首页 >> 脚本专栏

cmd replace 文件替换使用说明

帮助信息:
复制代码 代码如下:
替换文件。
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 替换只读文件以及未受保护的文件。

/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 等您插入磁盘以后再运行。

/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!