windows cmd下使用copy 命令,利用通配符 * 进行匹配后复制后的文件只有1k?xcopy直接跳过询问目录还是文件名该怎么实现?

copy命令的作用是将一个或多个已存在的文件复制到其他位置

XCOPY复制指定的目录和目录下的所有文件连同目录结构。

copy命令是可以通过通配符进行文件复制的,如下图我有两个以7z开头的文件,一个是txt文件,一个 exe文件。然后我直接使用了命令

1
copy 7z*.exe test.exe

意思就是说把以7z开头的exe文件复制到当前文件夹下,并且复制后的文件更名为test.exe。这种方法是可以复制成功的,只是不知道为什么,复制过后的文件大小只有2KB了,很明显的可以看出文件大小是不对的。如下红色框线将其框出来了的。

然后就查了一下除了copy命令以外,还有一个复制命令xcopy。

1
xcopy 7z*.exe te.exe

效果如上,只不过在我执行命令的时候会提示我一下te.exe是文件名还是目录名。这个时候我们按照提示选择文件就可以了,复制以后可以看到它的文件大小是和源文件一样的,下图蓝色框线框出来的部分。

(虽然实现了功能,但是原因是为什么我不太清楚,如果有清楚的大哥们可以给我解释一下下)

但是如果想要它写入脚本中,想要使用xcopy直接跳过询问目录还是文件名。在网上找了一下方法,可以通过如下命令实现,就是xcopy命令前加一个echo f| (注意有个竖线):

1
echo f|xcopy 7z*.exe 1.exe

如果是目录名,同理在xcopy前面加一个echo d| 就可以了