我有一个PowerShell脚本,它将递归循环一个dir和subdir,并在其中运行所有SQL文件,并将执行记录在.log文件中1表示成功,1表示异常。 PowerShell脚本做什么它应该做的事,但在cmd窗口,我看到这个错误:Get-Content -raw参数错误
从该行
$query = Get-Content -Path $_.FullName -Raw
这个语句一个循环中运行,每次迭代所以FullName
变化。这是我使用的版本。
Name : Windows PowerShell ISE Host Version : 5.0.10586.117
示例脚本低于:
Get-ChildItem $ScriptFolder -Recurse -Exclude "*Archive*" -Filter *.sql |
sort Directory |
ForEach-Object {
$query = Get-Content -Path $_.FullName -Raw
$result = SQLCMD -S $FullDBServer -E -I -Q $query -d $Database
有什么想法?
刚刚接触powershell。在你的语法中,-I和-I是否表示2 diff cmds?在调试过程中,我偶然发现了另一个问题。 Sqlcmd:错误:在命令'go'附近的第54行出现语法错误。 + $ result = SQLCMD -S $ FullDBServer -E -I -Q $查询-d $数据库 我可以感觉到问题是从我正在运行的脚本执行cmd。为什么相同的脚本在SSMS中工作得很好而在PowerShell中失败?我了解到,powershell默认关闭带引号的标识符设置,你必须明确地打开它(-I)。同样的方式有一些开关,我需要使用PowerShell不错误“去”? – Sri
我链接到解释'sqlcmd',它的参数和你观察到的行为的文档。我不会把它读给你。 –
我的不好。没有注意到它。谢谢 – Sri