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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从PowerShell /批处理文件中的网络路径运行命令相关的知识,希望对你有一定的参考价值。

基本上我正在尝试运行的是:

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

或这个:

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

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

答案

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


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


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

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

get "/remote/path/*" "\fileServerRemoteMirror"

另见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 \fileServerRemoteMirror

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

以上是关于如何从PowerShell /批处理文件中的网络路径运行命令的主要内容,如果未能解决你的问题,请参考以下文章

从批处理文件运行 Powershell 脚本中的参数

如何从批处理文件运行 PowerShell 脚本

如何使用批处理或PowerShell从文本文件中删除换行符

我如何使用需要从命令提示符/批处理文件引用的参数调用PowerShell Start-Process命令?

如何将 .bat 文件中的变量导入 PowerShell 脚本?

如何在powershell中遍历csv文件中的一行