中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-13 22:45
楼 主 [讨论]copy的一个疑问 发表于 2007-12-15 21:10 ·  中国 山西 太原 联通
初级用户
积分 51
发帖 20
注册 2006-12-07 01:09
UID 72766
性别 男
状态 离线
在使用copy命令时用/a /b可以分别指定复制的文件的格式.

我想问下,在不指定这两个参数的情况是默认的是什么格式?
ascii格式 还是二进制格式??

谢谢
2 发表于 2007-12-15 23:25 ·  IANA 局域网IP(Private-Use)
初级用户
积分 100
发帖 39
注册 2007-12-09 18:17
UID 105156
性别 男
状态 离线
我也想问一下如何copy多个文件?
比如我要把c盘中的a.txt和b.txt复制到d盘中,用一个语句怎么写?
是copy c:\a.txt&b.txt d:\吗?
3 发表于 2007-12-15 23:36 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
TO lcazhj:
根据测试之后的文件大小初步判断,默认应该是以ASCII方式复制的。
用类似“copy a.txt + b.txt c.txt”方式附加的文件,目标文件要比源文件的和多一个字节,而用“/b”参数时,目标文件的大小正好是源文件的大小之和。

TO no9ronaldo:
你这样写是不成的,可以分两次写,也可以用for循环来实现。
for %a in (C:\a.txt C:\b.txt) do @copy %a d:\
4 发表于 2007-12-15 23:39 ·  中国 山东 济宁 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
默认是源和目标文件每个字节都一样的二进制模式。

一个语句这样写,copy c:\a.txt d:\ & copy c:\b.txt d:\
简单就是美
5 发表于 2007-12-16 00:10 ·  IANA 局域网IP(Private-Use)
初级用户
积分 100
发帖 39
注册 2007-12-09 18:17
UID 105156
性别 男
状态 离线
版主写的循环在cmd里运行不成功啊?
6 发表于 2007-12-16 01:39 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by Michael at 2007-12-15 23:39:
默认是源和目标文件每个字节都一样的二进制模式。

为什么?

我测试的怎么是ASCII模式?
7 发表于 2007-12-16 01:40 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by no9ronaldo at 2007-12-16 00:10:
版主写的循环在cmd里运行不成功啊?

看看我运行的结果:
$ for %a in (C:\bbc.txt C:\bbd.txt) do @copy /y %a .\
已复制 1 个文件。
已复制 1 个文件。

$ dir /b *.txt
bbc.txt
bbd.txt

$
8 发表于 2007-12-16 10:01 ·  IANA 局域网IP(Private-Use)
初级用户
积分 100
发帖 39
注册 2007-12-09 18:17
UID 105156
性别 男
状态 离线
Originally posted by Michael at 2007-12-15 11:39 PM:
一个语句这样写,copy c:\a.txt d:\ & copy c:\b.txt d:\

原来是这样

[ Last edited by no9ronaldo on 2007-12-16 at 10:04 AM ]
9 发表于 2007-12-16 10:05 ·  IANA 局域网IP(Private-Use)
初级用户
积分 100
发帖 39
注册 2007-12-09 18:17
UID 105156
性别 男
状态 离线
Originally posted by lxmxn at 2007-12-16 01:40 AM:

看看我运行的结果:
$ for %a in (C:\bbc.txt C:\bbd.txt) do @copy /y %a .\
已复制 1 个文件。
已复制 1 个文件。

$ dir /b *.tx ...

这样也运行成功了。
但为什么我把它复制在bat里就执行不了?
10 发表于 2007-12-16 10:08 ·  IANA 局域网IP(Private-Use)
初级用户
积分 100
发帖 39
注册 2007-12-09 18:17
UID 105156
性别 男
状态 离线
知道了,还要加一个%。
谢谢两位;)
11 发表于 2007-12-16 10:49 ·  中国 山西 太原 联通
初级用户
积分 51
发帖 20
注册 2006-12-07 01:09
UID 72766
性别 男
状态 离线
请问版主 到底是ascii还是二进制的流文件呢
还有我建了个文件名为1的文件,1B,再用copy 1 /a 2 /b 时,为什么2这个文件是0B.
而其他的copy 1 /a 2 /a ;copy 1 /b 2 /a ;copy 1 /b 2 /b ;2的大小都是1B呢?
谢谢
12 发表于 2007-12-17 02:38 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by lcazhj at 2007-12-16 10:49:
请问版主 到底是ascii还是二进制的流文件呢
还有我建了个文件名为1的文件,1B,再用copy 1 /a 2 /b 时,为什么2这个文件是0B.
而其他的copy 1 /a 2 /a ;copy 1 /b 2 /a ;copy 1 /b 2 /b ;2的大小都是1B呢?
谢谢

以上的说法你测试过了没有,怎么和我测试的结论都不同呢?
13 发表于 2007-12-17 14:14 ·  中国 山西 太原 联通
初级用户
积分 51
发帖 20
注册 2006-12-07 01:09
UID 72766
性别 男
状态 离线
没有测试过,我怎么敢说呢
不行的话 这个问题先放放吧
谢谢了版主
14 发表于 2007-12-17 14:20 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by lcazhj at 2007-12-17 14:14:
没有测试过,我怎么敢说呢
不行的话 这个问题先放放吧
谢谢了版主


还有我建了个文件名为1的文件,1B,再用copy 1 /a 2 /b 时,为什么2这个文件是0B.

你看我这个和你一样的结果么?
E:\Cmd\cutest\test>dir
驱动器 E 中的卷是 LEARN
卷的序列号是 84D4-9B08

E:\Cmd\cutest\test 的目录

2007-12-17 14:00 <DIR> .
2007-12-17 14:00 <DIR> ..
2007-12-17 14:01 1 1
1 个文件 1 字节
2 个目录 1,455,321,088 可用字节

E:\Cmd\cutest\test>copy 1 /a 2 /b
已复制 1 个文件。

E:\Cmd\cutest\test>dir
驱动器 E 中的卷是 LEARN
卷的序列号是 84D4-9B08

E:\Cmd\cutest\test 的目录

2007-12-17 14:00 <DIR> .
2007-12-17 14:00 <DIR> ..
2007-12-17 14:01 1 1
2007-12-17 14:01 1 2
2 个文件 2 字节
2 个目录 1,455,316,992 可用字节

E:\Cmd\cutest\test>
论坛跳转: