我正在制作一些测试变量并在其中插入一个新的行字符。当我打印出来时,一切都还可以,一个字低于第二个字。但是当我将此变量的值写入* .txt文件时,新行字符不起作用。 这是我的例子:
DECLARE @cmd varchar(200), @var varchar(200)
SET @var = 'Hello' + CHAR(13) + 'world'
SET @cmd = 'echo ' + @var + ' > E:\s.txt'
print @cmd
EXEC master..xp_cmdshell @cmd
我尝试使用DECLARE @NewLineChar AS CHAR(2) = CHAR(13) + CHAR(10)
或\r\n
代替此CHAR(13)
,但没有效果:/有人可以给我一些关于这个问题的小提示吗?
我使用的是Microsoft SQL Server 2008 R2
答案 0 :(得分:0)
这有用吗?
DECLARE @cmd varchar(200), @var varchar(200);
SET @var = 'Hello
world';
SET @cmd = 'echo ' + @var + ' > E:\s.txt';
print @cmd;
EXEC master..xp_cmdshell @cmd;
编辑:
我相信你的问题是逃避Windows shell中的新行。尝试转义字符'^'
:
DECLARE @cmd varchar(200), @var varchar(200);
SET @var = 'Hello^
world';
SET @cmd = 'echo ' + @var + ' > E:\s.txt';
print @cmd;
EXEC master..xp_cmdshell @cmd;
确保'^'
之后没有空格或其他字符。