Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell调用Sqlcmd工作目录_Sql_Powershell - Fatal编程技术网

Powershell调用Sqlcmd工作目录

Powershell调用Sqlcmd工作目录,sql,powershell,Sql,Powershell,我的文件夹结构中有一个Powershell脚本,如下所示: ── Versions/ └── v025/ └── v025.sql Update.ps1 RunScript.sql Update.ps1文件具有以下命令 Invoke-SqlCmd -InputFile "./RunScript.sql" -ServerInstance $server -Database $database -Username $user -Passwo

我的文件夹结构中有一个Powershell脚本,如下所示:

 ── Versions/
    └── v025/
        └── v025.sql
        Update.ps1
        RunScript.sql
Update.ps1文件具有以下命令

Invoke-SqlCmd -InputFile "./RunScript.sql" -ServerInstance $server -Database $database -Username $user -Password $pass
RunScript.sql具有以下功能:

:r v025\v025.sql
执行的结果消息是:

Invoke-SqlCmd : Cannot find path 'v025\v025.sql' because it does not exist.
为什么会这样?文件位置正确


有什么想法吗?

假设使用windows,您可能想尝试使用。\v025\v025.sql

还有,我可能错了,但我认为 调用SqlCmd-InputFile“/RunScript.sql”

应该是


调用SqlCmd-InputFile“\RunScript.sql”

尝试将脚本的路径完全限定为第一个测试,检查斜杠的方向,以防它们被视为转义符。您好,谢谢您的回答。我已经试过了,效果也不错。好吧-我不太熟悉脚本
:r v025\v025中包含的SQL语法。SQL
,但通常我会认为SQL查询中执行的路径通常与服务器相关(比如备份/磁盘操作等),因为查询是远程发送到服务器并在那里执行的。如果它使用绝对路径,并且这是一个本地服务器实例。。。。这可能是为什么?嗯,这是一个蝙蝠脚本。但是我们需要迁移到PowerShell,现在出现了此错误消息。
v025
是否位于
Versions
目录中?无论是从Update.ps1还是RunScript.sql的上下文调用该命令,我都希望它是
:r Versions\v025\v025.sql
。也许我遗漏了什么?嗨,谢谢你的回答。这会产生相同的错误:Invoke SqlCmd:找不到路径“.\v025\v025.sql”,因为它不存在。我认为这是因为RunScript.sql正在服务器上运行,而v025.sql不在服务器上(或者至少在运行它的相对路径中),我认为它不会工作。-你能让你的powershell脚本只运行v025.sql作为一个单独的调用sqlcmd吗?是的,我可以运行它并按预期运行。但这不是我需要的。我需要运行RunScript.sql,这个sql内部有几个r:命令,而且每个v0x/x0x.sql文件也有几个r:命令。