如何从PowerShell /批处理文件中的网络路径运行命令

时间:2017-11-14 00:02:26

标签: sql-server powershell cmd sql-server-2012 winscp

基本上我试图运行的是:

cd /d W:\RemoteMirror\ && winscp.com /ini=nul /script=Remote_Mirror_WinSCP.txt

或者这个:

cd /d \\fileServer\RemoteMirror\ && winscp.com /ini=nul /script=Remote_Mirror_WinSCP.txt

当然,使用SQL Server,我无法使用UNC路径。但我不知道如何做到这一点。我对PowerShell还不太熟悉,但那是我最好的猜测。

1 个答案:

答案 0 :(得分:1)

UNC路径不能是当前工作目录(这是Windows限制,它与SQL服务器无关)。

正如@lit已经注释,您可以使用pushd command临时为UNC路径分配驱动器号并立即将工作目录更改为它。

或者,修改您的WinSCP脚本,使其不依赖于当前的工作目录。

只需在脚本中使用完整的UNC路径,例如:

get "/remote/path/*" "\\fileServer\RemoteMirror\"

另见Using batch file and WinSCP to download files from the FTP server to file server (shared folder)

或者,如果您需要使脚本使用不同的目录,请使用parameterized script

get "/remote/path/*" "%1%\"

然后运行它:

winscp.com /ini=nul /script=Remote_Mirror_WinSCP.txt /parameter \\fileServer\RemoteMirror

查看使用parameterized scripts的完整示例。