Sql server 仅选择包含文件的文件夹

Sql server 仅选择包含文件的文件夹,sql-server,tsql,Sql Server,Tsql,我当前检索文件夹结构,并使用父文件夹中包含的每个文件夹创建一个数据库。问题是,当一个文件夹中不包含任何文件时,它就会倒下 INSERT INTO DBName EXECUTE XP_CMDSHELL 'dir \\FAS-RBGFS01\costec\FTP\ /b' 这将返回所有文件夹的列表,无论其中是否包含数据: output CAD CEN CRO EXC FRM IND LGL RSK ZZZ NULL 文件夹“CAD”不包含任何文件 如何仅选择其中包含文件/数据的文件夹 提前感谢您

我当前检索文件夹结构,并使用父文件夹中包含的每个文件夹创建一个数据库。问题是,当一个文件夹中不包含任何文件时,它就会倒下

INSERT INTO DBName
EXECUTE XP_CMDSHELL 'dir \\FAS-RBGFS01\costec\FTP\ /b'
这将返回所有文件夹的列表,无论其中是否包含数据:

output
CAD
CEN
CRO
EXC
FRM
IND
LGL
RSK
ZZZ
NULL
文件夹“CAD”不包含任何文件

如何仅选择其中包含文件/数据的文件夹


提前感谢您

您无法使用
dir
命令实现它。相反,您可以使用批处理脚本并使用
XP\u CMDSHELL
调用该批处理脚本,如下所示

取自

您可以将以下脚本保存在名为
test.bat的文件中

@echo off
dir /a /b %1 2>nul | findstr "^" >nul || echo %%~fA
for /f "eol=: delims=" %%A in ('dir /s /ad /b %1') do (
  dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo %%~fA
)
那就这样说吧

INSERT INTO DBName
EXECUTE XP_CMDSHELL 'test.bat \\FAS-RBGFS01\costec\FTP\'

你用的是什么编程语言?@DanBracuk我想它只是SQL(确切地说是T-SQL w/SQL Server)。嗨,Dan Bracuk,我用SQL导入文件夹结构。嗨,Rahul,我已根据请求创建了.bat文件并执行了提供的脚本,但以下错误被导入到我的DBName表中:“test.bat”未被识别为内部或外部命令、可操作程序或批处理文件。近似,我已经更新了提供的执行脚本以指向.bat文件的位置,它现在导入不包含任何文件的文件夹。我现在怎么能实现相反的目标?我想选择包含文件的文件夹并排除不包含文件的文件夹。我已将文件夹(使用脚本)导入临时表,并从临时表中存在该记录的DBName中删除。这样,只会将文件夹保留在包含文件的DBName中。你的建议真的帮了我很大的忙。非常感谢。