Укажите частичный каталог для использования в Powershell Invoke sqlcmd

Необходимо иметь возможность запускать файлы .sql по отдельности, расположенные в нескольких подкаталогах. Этот сценарий будет запущен на нескольких компьютерах, где каталог не будет одинаковым, но подкаталоги будут одинаковыми. Поэтому я хочу иметь возможность определить каталог как переменную, подобную этой.

$Path = 'D:\Source\Database'
invoke-sqlcmd -Username $username -Password $password -inputfile "$Path*\SQLServer\create_types.sql" -serverinstance "localhost" -database "test" | Out-File -FilePath "c:\testoutput.txt"

person Harvdawg    schedule 24.02.2016    source источник


Ответы (1)


Используйте Get-ChildItem с -recurse и передайте в цикл ForEach.

$Path = 'D:\Source\Database'
Get-ChildItem "$Path\*\SQLServer\create_types.sql" -recurse|ForEach{
    invoke-sqlcmd -Username $username -Password $password -inputfile $_.FullName -serverinstance "localhost" -database "test"
} | Out-File -FilePath "c:\testoutput.txt"
person TheMadTechnician    schedule 24.02.2016