我如何 运行 来自 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 的完整示例。
基本上我要 运行 是这样的:
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.
或者,修改您的 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 的完整示例。