如何避免空的xml文件

Posted

技术标签:

【中文标题】如何避免空的xml文件【英文标题】:How to avoid empty xml file 【发布时间】:2015-09-22 18:23:31 【问题描述】:

如果我在错误的地方发布此内容,请提前道歉。我有一个 Windows 批处理脚本,它调用一个 sql 查询来生成一个 xml 文件,该文件被传输到第 3 方。它计划每 15 分钟运行一次。我的问题是有时没有记录,它会创建一个空文件。当它到达第 3 方时,这会导致问题。

这是我的 .sql 文件中的部分(运行良好),但我无法弄清楚如何仅在其中有记录的情况下生成 xml。

select @cmd = ' bcp "select * from dbo.WelcomeEmail  CustomerDetail for xml auto, root(''CustomerDetails''), elements" ' + 'queryout "d:\sample.xml"

我试过了,但它给了我一个错误 bcp failed:

select @cmd = ' bcp "select * from dbo.WelcomeEmail where email is not null CustomerDetail for xml auto, root(''CustomerDetails''), elements" ' + 'queryout "d:\sample.xml"

如果您需要我提供更多信息,请告诉我。谢谢!

【问题讨论】:

【参考方案1】:

看到这个答案:How can I check the size of a file in a Windows batch script?

您可以检查文件是否包含零字节(或者在没有数据时文件的大小是什么),然后删除该文件。

【讨论】:

我对这个选项持开放态度。我实际上早先尝试过,但也遇到了问题。这仅在我在输出文件所在的目录中运行时才有效。但我想将它包含在另一个目录中的批处理脚本中。这是我使用的:for %%F in (D:/WelcomeEmail/CopyWelcomeTest-*.xml) do if %%~zF equ 0 del "%%F" 你知道从不同的目录执行它时如何让它工作吗?

以上是关于如何避免空的xml文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 XElement 保存 XML 文件时,文件中的对齐方式也会发生变化,如何避免?

如何在 VSTS 构建期间使用 OctoPack 避免 XML 文件中的无效字符?

spring boot引入jar包后自动生成了一个空的xml文件

mybatis中一直获取xml配置文件输入流值为空的类似解决方法

如何避免在用Java生成XML时出现多余的空白行?

java开发工具intellij idea如何创建不同类型的xml文件呢?