我正在尝试将同一目录中多个文件夹的内容复制到一个新文件中。我要复制的所有文件都具有扩展名.sql
。
当我尝试这个 - 使用一个目录 - 它可以工作:
directory>copy *.sql copy.sql
但是当我尝试
时directory>copy */*.sql copy.sql
我得到了
The syntax of the command is incorrect.
我做错了什么?我想我正确地按照this site的指示行事,但我是吗?
我不确定这是否有所作为,但我使用的是Windows 7。
TIA!
答案 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