博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

xcopy与EXCLUDE参数的用法

Posted on 2010-06-08 16:21  codingsilence  阅读(4651)  评论(1编辑  收藏  举报

xcopy 和 copy 都是 windows里面的命令

xcopy的好处就是可以排除不想要的文件 或者 文件夹进行复制

不过这个命令用起来真的不好用 并不像windows的帮助写的那么简单 下面来详细说明一下

我们先看看xcopy的帮助是怎么写的

/EXCLUDE:file1[+file2][+file3]...

指定含有字符串的文件列表。每一个字符串

必须在文件的单独行中。如果有任何

字符串与要被复制的文件的绝对路径

相符,那个文件将不会得到复制。

例如,指定如 /obj/ 或 .obj 的字符串会排除

目录 obj 下面的所有文件或带有

.obj 扩展名的文件。

下面我们来作试验

建立两个文件夹 一个叫做data 一个叫做backup

目录树

Z:.

├─data
│ ├─bad
│ └─good
│ bad.txt
│ good.txt
│ 1.bad
│ 2.bad
│ 3.bad
│ 5.bad
│ 4.bad

└─backup


偶们的目标就是把 凡是标记了good的文件夹以及文件copy到backup这个目录里面 而排除标记了bad的文件夹和目录

根据xcopy的帮助写如下命令

xcopy /e /s /h /exclude:uncopy.txt z:/data/ z:/backup/

uncopy.txt里面就包含了我们想要排除的文件 以及 文件夹

内容如下

/bad/

bad.txt

.bad

xcopy /e /s /h /exclude:uncopy.txt z:/data/ z:/backup/ 这条命令大家先不要执行 觉得有错吗?

ok 我们来执行看看

Z:/>xcopy /e /s /h /exclude:uncopy.txt z:/data/ z:/backup/

无效路径

复制了 0 个文件

真有趣阿 呵呵 无效路径

xcopy /e /s /h /exclude:uncopy.txt z:/data/ z:/backup/ 问题出在z:/data/ 上面

正确的写法应该是z:/data 不要/ 而后面的 z:/backup/ 则要不要/都可以

改过以后我们再来执行

Z:/>xcopy /e /s /h /exclude:uncopy.txt z:/data z:/backup/

Z:/data/good/good.txt

复制了 1 个文件

看一下backup的目录树

Z:.
└─good
good.txt

对比

Z:.
├─bad
└─good
bad.txt
good.txt
1.bad
2.bad
3.bad
5.bad
4.bad

我们成功的复制了只标记了good的文件夹以及文件

这个用法不错 比如 你硬盘上有文件损坏了 可以使用这个 方法避开损坏的文件

又或者 避开 一些不需要的文件 只copy想要的东西

在通配符不好使的情况下 你可以尝试这种方法

thx:10对此次测试的重要帮助