如何使用CMD复制命令复制多个文件夹的内容?

时间:2011-02-10 17:17:36

标签: windows copy cmd dos

我正在尝试将同一目录中多个文件夹的内容复制到一个新文件中。我要复制的所有文件都具有扩展名.sql

当我尝试这个 - 使用一个目录 - 它可以工作:

directory>copy *.sql copy.sql

但是当我尝试

directory>copy */*.sql copy.sql

我得到了

The syntax of the command is incorrect.

我做错了什么?我想我正确地按照this site的指示行事,但我是吗?

我不确定这是否有所作为,但我使用的是Windows 7。

TIA!

3 个答案:

答案 0 :(得分:1)

你想要做的是在Unix上运行(bash / sh),但遗憾的是在Windows CMD上不起作用。

在Windows CMD中执行以下操作:

del result.sql && FOR /F %G IN ('"dir *.sql /s /b"') DO type %G >> result.sql

它将删除result.sql,并且对于当前和子目录中的每个名为* .sql的文件(dir *.sql /s /b),将内容附加到result.sql(type filename >> result.sql)。

还有一个FORFILES命令,但不确定它所引入的Windows版本。

del result.sql && FORFILES /S /M *.sql /C "cmd /c type @path" > result.sql

(注意&&只是一种在每行添加多个命令的方法,可以用标准换行符替换(\ r \ n)。)

答案 1 :(得分:0)

我认为这不会起作用。标准Windows命令shell不会对路径组件进行通配符匹配,只是路径参数的最后一部分。同样,你在那里有一个正斜杠,用于命令参数

C:\> dir win*
 Volume in drive C is BSOD
 Volume Serial Number is 4AFF-AE03

 Directory of C:\

03/01/2011  07:58 AM    <DIR>          Windows
               0 File(s)              0 bytes
               1 Dir(s)  393,128,820,736 bytes free

正如所料,但正在做

C:\> dir win*\sys*
The filename, directory name, or volume label syntax is incorrect.

C:\> dir windows\sys*
 Volume in drive C is BSOD
 Volume Serial Number is 4AFF-AE03

 Directory of C:\windows

13/07/2009  08:36 PM    <DIR>          system
10/06/2009  03:08 PM               219 system.ini
10/02/2011  07:55 AM    <DIR>          System32
09/02/2011  04:33 PM    <DIR>          SysWOW64
               1 File(s)            219 bytes
               3 Dir(s)  393,128,816,640 bytes free

答案 2 :(得分:0)

好吧我假设您的所有sql文件都是文本文件,所以你可以做一些像

这样的事情

输入* .sql&gt;&gt; copy.sql