在批处理文件中将SQL文件与命令`copy`结合使用会引入错误的语法,因为它确实添加了一个不可见的字符`U + FEFF`

问题描述 投票:0回答:1

在预构建事件中,执行批处理文件以将多个SQL文件合并为一个。 使用此命令完成:

COPY %@ProjectDir%\Migrations\*.sql %@ProjectDir%ContinuousDeployment\AllFilesMergedTogether.sql

一切似乎都工作正常但不知何故结果给出了错误的语法错误。 经过两个小时的调查,事实证明这个问题是由一个看不见的角色引起的,即使用记事本++也是如此。 使用在线网站,该角色已被发现,并且U+FEFF已在下图中显示。 enter image description here

这是两个输入脚本。 PRINT 'Script1' PRINT 'Script2'

这是copy命令给出的输出。 PRINT 'Script1' PRINT 'Script2'

附加信息 :

  • 批处理文件使用UTF-8编码
  • 输入文件使用UTF-8-BOM编码
  • 输出文件使用UTF-8-BOM编码。 我不确定是否可以更改命令copy的编码输出。 我尝试过但都失败了。

应该采取什么措施来消除这种极其令人沮丧的寄生特征?

sql batch-file copy pre-build-event
1个回答
0
投票

事实证明,将输入文件的编码更改为ANSI确实可以解决问题。 没有更讨厌的角色。 另外,这样做会将结果文件的编码更改为UTF-8而不是UTF-8-BOM,我相信这很棒。

可以使用Notepad ++更改编码,如下图所示。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.