用于网站的powershell ftp脚本

时间:2011-07-22 13:01:25

标签: powershell

我有以下脚本(改编自此处),用于通过ftp为网站上传文件。

$files = @(dir -Path $path)

  foreach ($file in $files) {
    if ($file.GetType().FullName -eq 'System.IO.FileInfo') {
      "uploading $file"
      $uri = New-Object System.Uri($ftp+$file.Name)
      $webclient.UploadFile($uri, $file.FullName)
    }elseif ($file.GetType().FullName -eq 'System.IO.DirectoryInfo') {
      Recurse $file.FullName
    }

如果所有文件都转到目录的根目录,这样可以正常工作。我遇到的问题是根目录下有站点的子目录。这将(根据需要)放置在根目录下的所有文件,而不管它们在实际目录结构中的位置。

是否有一种简单的方法来传输所有文件,同时保持源的目录结构。我确信我可以使用分离路径将某些东西放在一起,但我只是想确保在进一步使用之前我没有忽略某些东西。

感谢。

2 个答案:

答案 0 :(得分:2)

根据评论转换的每个请求:

geekswithblogs.net有一个递归FTP拷贝的解决方案。

答案 1 :(得分:0)

也许是Microsoft Documentation can help here

URI可以是相对的或绝对的。如果URI的格式为“ftp://contoso.com/%2fpath”(%2f是转义'/'),那么URI是绝对的,当前目录是/ path。但是,如果URI的格式为“ftp://contoso.com/path”,则首先.NET Framework登录到FTP服务器(使用Credentials属性设置的用户名和密码),然后是当前目录设置为/ path。

相关问题