指定要在Powershell Invoke sqlcmd中使用的部分目录

时间:2016-02-24 17:42:34

标签: powershell powershell-v4.0 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"

1 个答案:

答案 0 :(得分:2)

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"