我正在创建一个存储过程来使用 SQL Server 2008 R2 跟踪某些服务器文件夹的已用空间。对于特定目录,我遇到了一个有趣的问题。
当我运行时,EXEC master.dbo.xp_cmdshell 'dir "\\servername\e$\media\Google" /s /-C'
我得到一个结果:
但是,当我为 dos 命令使用变量时
DECLARE @dir VARCHAR(255) = 'dir "\\servername\e$\media\Google" /s /-C'
EXEC master.dbo.xp_cmdshell @dir
我得到不同的结果:
可以看到文件数相同,但使用的字节数不同。以下是包含文件的子目录的详细信息:
不使用变量:
使用@dir 变量:
您可以看到,尽管每个文件的大小似乎相同,但总大小却不同。
我还有其他带有 zip 文件的子目录没有出现这种行为。有没有人对可能导致这种情况的原因有任何想法?或者如何修复?