PowerShell:将文件递归上传到FTP服务器,如果该目录不存在,则创建任何目录(没有尝试捕获)



我正在编写一个powershell脚本,该脚本将及时执行,该脚本将及时执行,该脚本将抓住特定目录 子目录的任何内容并将其上传副本上传到FTP服务器。

如果文件已经存在于服务器上,它将覆盖。
如果目录在服务器上不存在,则将创建它。

我已经实现了我需要做的大部分事情,但是如果不存在的话,我就可以陷入子目录的创建。

我拥有的代码虽然还不干净。

function UploadFilesInDirectory($RemoteDestination, $LocalSource) {
    $local_files = Get-ChildItem $LocalSource
    foreach ($local_file in $local_files)
    {
        $isDirectory = (Get-Item $local_file.FullName) -is [System.IO.DirectoryInfo]
        if ($isDirectory) 
        {
            UploadFilesInDirectory -RemoteDestination "$RemoteDestination" -LocalSource "$LocalSource$local_file"
        } 
        else 
        {
            Write-Host "Uploading $local_file"
            $desinationPath = $LocalSource.Replace("$local_backup", "")
            $desinationPath = "$remote_connection$desinationPath$local_file".Replace("", "/")
            $webclient.UploadFile("$desinationPath", $file.FullName )   
        }
    }
}

任何帮助将不胜感激。

我认为没有使用try/catch

  • 您是否需要使用FtpWebRequest功能来检查存在,但是您必须使用try/catch
    在PowerShell中查看FTP服务器上的文件存在

    我认为这不是那么糟糕(如果将测试置于功能中(。

  • ,或者您需要使用第三方FTP模块/库/汇编/工具。例如。我的 winscp .net组装。这也涵盖了我对
    的回答在PowerShell中查看FTP服务器上的文件存在

  • ,或者您需要使用诸如ListDirectory之类的东西来检索整个父目录列表,解析并查找所关注的目录。那是非常无效的。

相关内容

  • 没有找到相关文章

最新更新