Sql server 如何使用sql在ECHO命令中转义换行符

Sql server 如何使用sql在ECHO命令中转义换行符,sql-server,cmd,escaping,echo,xp-cmdshell,Sql Server,Cmd,Escaping,Echo,Xp Cmdshell,我有一个用于将数据从SQLServer导出到本地hdd的格式文件。 我必须通过SQL命令在远程机器上创建此格式文件 Server srv = new Server(conn); server.ConnectionContext.ExecuteNonQuery("xp_cmdshell 'ECHO 10.0 1 1 SQLBINARY 8 0 \"\" 1 blob \"\">>

我有一个用于将数据从SQLServer导出到本地hdd的格式文件。 我必须通过SQL命令在远程机器上创建此格式文件

Server srv = new Server(conn);    
server.ConnectionContext.ExecuteNonQuery("xp_cmdshell 'ECHO 10.0 1 1       SQLBINARY           8       0       \"\"   1     blob                 \"\">> " + destinationPathFormat + "'");
没有换行符转义,格式文件无效,导出数据也不起作用。 必须在此处转义字符串:10.0[ESCPAP]1[ESCPAP]1


提前感谢。

因为
echo
附加了一个换行符,所以您可以发出多个echo命令

server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line1 >> " + destinationPathFormat + "'");
server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line2 >> " + destinationPathFormat + "'");
server.ConnectionContext.ExecuteNonQuery(
    "xp_cmdshell 'ECHO line3 >> " + destinationPathFormat + "'");

您已经在使用附加到文件的
>
,而不是创建文件的

这很奇怪。您可以尝试使用
^
转义字符,如
echo^
。但在我的系统上,
1
不需要它。