我目前检索文件夹结构并使用Parent文件夹中包含的每个文件夹创建数据库。问题是,当有一个不包含任何文件的文件夹时,它就会崩溃。
INSERT INTO DBName
EXECUTE XP_CMDSHELL 'dir \\FAS-RBGFS01\costec\FTP\ /b'
这会带回所有文件夹的列表,无论它是否包含数据:
output
CAD
CEN
CRO
EXC
FRM
IND
LGL
RSK
ZZZ
NULL
文件夹" CAD"不包含任何文件。
我如何只选择包含文件/数据的文件夹?
提前谢谢
答案 0 :(得分:1)
您无法使用dir
命令实现此目的。相反,您可以使用批处理脚本并使用XP_CMDSHELL
调用该批处理脚本,如下所示。
取自how-to-list-all-the-empty-directories-using-windows-batch-file
您可以将以下脚本保存在名为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\'