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:UsersHELLOW~1Desktop>replace /a 1.txt c:

/P 替换文件或加入源文件之前会先提示您进行确认。
复制代码/p,英文全称prompt,意为:提示。
顾名思义,就是提示,效果:

C:UsersHELLOW~1Desktop>replace /p 1.txt c:
是否替换 C:1.txt? (Y/N)


/R 替换只读文件以及未受保护的文件。

/r,英文全称read,意为:阅读;在此可引申为只读文件。
竟然有这个参数,可以预见,replace默认是不能替换只读文件的,经测试确实如此。

C:UsersHELLOW~1Desktop>attrib +r c:1.txt
C:UsersHELLOW~1Desktop>replace 1.txt c:
拒绝访问 - C:1.txt
未替换文件
C:UsersHELLOW~1Desktop>replace /r 1.txt c:
正在替换 C:1.txt


/S 替换目标目录中所有子目录的文件。不能与 /A 命令开关搭配使用。

/s,英文全称subdirectory,意为:子目录。
/s可以替换指定目录下所有子目录的文件,
例如:有两个txt文件,他们的完全路径分别是 c:1.txt c:hello1.txt,用/s参数一次把他们全部替换。

C:UsersHELLOW~1Desktop>replace /s /r 1.txt c:
正在替换 C:1.txt
正在替换 C:hello1.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:UsersHELLOW~1Desktop>echo I'm first!>c:1.txt
C:UsersHELLOW~1Desktop>echo I'm Second!>d:1.txt

然后加/u参数替换c:1.txt到d盘

C:UsersHELLOW~1Desktop>d:1.txt
C:UsersHELLOW~1Desktop>replace /u c:1.txt d:
C:UsersHELLOW~1Desktop>type d:1.txt
I'm Second!

可以看出d盘的1.txt并没有被替换,这是为什么?因为d:1.txt后于c:1.txt的创建,换句话说:d:1.txt比c:1.txt新。
竟然如此,那么反过来自然就成立了:

C:UsersHELLOW~1Desktop>replace /u d:1.txt c:
正在替换 C:1.txt
C:UsersHELLOW~1Desktop>type c:1.txt
I'm Second!

批处理删除自身的命令小结
如果没有移动目录等问题,可以直接通过下面的语句解决:del%0或下面的两种方法都可以Del/Q%0Nuldel/f/q%0上面的代码是没有移动目录的,如果将当前文件

批处理中setlocal enabledelayedexpansion的作用详细整理
为了更好的说明问题,我们先引入一个例子。例1:@echooffseta=4seta=5&echo%a%pause结果:4解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?

百度贴吧上传图片方式附件利器
@echooff:start@echo.echo①请拖入图象文件回车echo(不推荐bmp格式,上传至网络相册后压缩包数据有可能损坏)set/pphoto=call:11%photo%:11clsif%~x1==.pnggoto1if%~x1==.PNG(