AMH
AMH

Reputation: 6451

Powershell script to run list of sql files

I want to read a file that contains a line separated list of *.sql file names (all located at the same directory) to execute the following:

$reader = [System.IO.File]::OpenText("_Scripts.txt")
try {
    for(;;) {
        $line = $reader.ReadLine()
        if ($line -eq $null) { break }
        #output
        $out = $line.split(".")[0] + ".txt" ; 

        # -serverinstance  u should change the value of it according to use 
        invoke-sqlcmd -inputfile $line -serverinstance "."   | format-table | out-file -filePath $out 
        $line
    }
}
finally {
    $reader.Close()
}

I'm trying to execute this script file by using a batch file containing the command:

powershell.exe -ExecutionPolicy Bypass -Command "_scripts.ps1"

but I get the error shown below:

enter image description here

Can anyone help me fix my ps1 script please?

Upvotes: 1

Views: 4109

Answers (1)

user4622594
user4622594

Reputation:

This works for me:

$lines = Get-Content C:\Temp\TEST\_Scripts.txt

ForEach ($line in $lines)
{
    $out = $line.split(".")[0] + ".txt" ;
    Invoke-Sqlcmd -InputFile $line -ServerInstance "localhost" -Database "master" | Format-Table | Out-File -FilePath $out
}

Upvotes: 2

Related Questions