Sql server 如何使用sql在ECHO命令中转义换行符
我有一个用于将数据从SQLServer导出到本地hdd的格式文件。 我必须通过SQL命令在远程机器上创建此格式文件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 \"\">>
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
不需要它。