1
我有持有其是分級組織如下記錄的SQL表創建批處理文件夾結構:使用SQL腳本輸出
ID Item OtherColumns ParentID
1 a blah NULL
2 b blah 1
3 c blah 2
4 d blah 3
5 e blah 3
6 f blah 3
7 g blah 4
8 h blah 4
9 i blah 4
10 j blah 4
11 k blah 6
12 l blah 6
13 m blah 6
14 n blah 6
圖形,層次結構是
a
--b
----c
-------d
----------g
----------h
----------i
----------j
-------e
-------f
----------k
----------l
----------m
----------n
我有一個SQL採用parentID參數並返回該節點的所有子項的腳本。
我打電話從一個遞歸函數的腳本,批處理文件,並在其結構的順序打印出的項目,但我不知道我怎麼可以創建一個反映此
我批一個文件夾結構
@echo off
setlocal enabledelayedexpansion
set Id=1
call :CreateSubDirectories !Id! 1
goto eof
:CreateSubDirectories
for /f "tokens=1,2,*" %%i IN ('sqlcmd -S MyServer\MyInstance -d myDatabase -U myUser -P myPassword -i C:\Path\to\my\script.sql -v parentId^=%~1! -h -1') DO (
echo %%i
call :CreateSubDirectories %%i
)
:eof
endlocal
所以這打印出
a
b
c
d
g
h
i
j
e
f
k
l
m
n
但是,如果我是一個MKDIR添加到我的循環,所有的文件夾將創建在同一水平上。我怎樣才能得到這個創建上面表示的文件夾結構?
有你已經有一些CTE代碼? – gbn
是的,SQL腳本有一個遞歸的CTE – SEarle1986