Sql server 递归BCP导入赢得';不能在批处理文件中工作

Sql server 递归BCP导入赢得';不能在批处理文件中工作,sql-server,batch-file,cmd,sql-server-2012,Sql Server,Batch File,Cmd,Sql Server 2012,我正在将文件夹中的一组数据文件导入SQL Server表。如果在命令行中手动输入,我可以运行递归的bcp,但如果将其放入批处理文件中,则无法运行 命令是: for /r %i in (*) do bcp databasename.dbo.tablename in %i -c -t -S servername -U username -P password -t "|" 返回的错误是-c此时是意外的。如果我删除-c,我会得到-t,这在此时是意外的,等等。问题是,文件名在加载到%I时以空格和破折

我正在将文件夹中的一组数据文件导入SQL Server表。如果在命令行中手动输入,我可以运行递归的
bcp
,但如果将其放入批处理文件中,则无法运行

命令是:

for /r %i in (*) do bcp databasename.dbo.tablename in %i -c  -t -S servername -U username -P password -t "|"

返回的错误是
-c此时是意外的
。如果我删除
-c
,我会得到
-t,这在此时是意外的
,等等。

问题是,文件名在加载到%I时以空格和破折号结束,这些被解释为
bcp
命令的有意义的部分,这当然把它搞砸了。简单但烦人的解决方案是确保目录名和文件名没有空格或破折号。

为了确保没有任何错误,您可以将bcp命令的输出重定向到文件吗?@TT。我已经将bcp命令的输出添加到QTry中,将第二个
%I
放在双引号之间,如
%I
。此外,在命令行中还指定了两次
-t