我如何 运行 来自 PowerShell/batch 文件中网络路径的命令

How do I run a command from a network path in PowerShell/batch file

基本上我要 运行 是这样的:

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 服务器,我不能使用 UNC 路径。但我不知道该怎么做。我对 PowerShell 还不太熟悉,但这是我最好的猜测。

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


正如@lit 已经评论的那样,您可以使用 pushd command.

临时为 UNC 路径分配一个驱动器号并立即将工作目录更改为它

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

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

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

另见


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

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

和运行它喜欢:

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

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