返回列表 发帖
二楼的代码问题在这
copy /b a.txt+b.txt a.txt
改成下面这样就应该没问题了
copy /b a.txt+tmp a.txt

debug的方案
@goto :start
r bx
1
r cx
0
w
q
:start
@echo off
chcp 437 & graftabl 936 & cls
pushd %~sdp1
ren %~snx1 %~sn1.tmp
debug %~sn1.tmp < %0 >nul
ren %~sn1.tmp "%~nx1"
popdCOPY
天的白色影子

TOP

从没有深究过copy /b a.txt+b.txt b.txt
现在想来可能是语义上存在二义性的问题
当第一步copy将a.txt拷贝入b.txt中后
再读b.txt是读拷贝之前的版本还是拷贝之后的版本呢?
这在命令实现上是有困难的
天的白色影子

TOP

copy 是读取源文件内容到内存然后再写入目标的
不会存在修改文件与硬盘数据关联的情况

copy a+b+c的形式缺省是以a为目标的
与copy a+b+c a 实质等同
其机制大致如下:
读方式打开a
读a到内存
发现目标是a
关闭a
读写方式打开a
读a到内存
读方式打开b
读b到内存
写内存到a
关闭b
读方式打开c
读c到内存
写内存到a
关闭c
关闭a

copy a+b+c c 的机制大致如下:
读方式打开a
读a到内存
发现目标是c
读写方式打开c
写内存到c
关闭a
读方式打开b
读b到内存
写内存到c
关闭b
关闭c
天的白色影子

TOP

返回列表