【问题标题】:Year Month Day directory structure for FTP uploaded files with Powershell使用 Powershell 的 FTP 上传文件的年月日目录结构
【发布时间】:2016-04-04 13:03:51
【问题描述】:

我目前有一个 PowerShell 脚本,用于定期将某些文件上传到 FTP 服务器。此脚本将每个文件转储到一个主文件夹中。 我想要的是一个以(根)/年/月/日结构上传文件的脚本。

我已经检查了 很多 的地方,找到了一些我可以用于此目的的脚本,但无法让它们中的任何一个工作。

有什么建议吗?我一定已经尝试过 google 上的前 100 个结果。

'将其全部转储到一个文件夹'上传脚本:

$webclient = New-Object System.Net.WebClient  

$webclient.Credentials = New-Object
System.Net.NetworkCredential($user,$pass)   

foreach($item in ($checkitems)){  

    Write-host  "Uploading $item..."  -ForegroundColor Green 
    $dt = Get-Date 
    Add-Content $log3 "$dt : Uploading $item..." 

    $name=$item.Name
    $name=[System.Uri]::EscapeDataString($name)
    $uri = New-Object System.Uri($ftp+$name+"")
    $webclient.UploadFile($uri, $item.FullName) 

    if($error -ne $null) 
    { 
        Write-Host "Items will not be moved" -ForegroundColor Red 
    } 
    else 
    { 
        Write-Host "Moving $item to processed" -ForegroundColor green 
        Move-Item $item.Fullname $processed 
        $dt = Get-Date 
        Add-Content $log3 "$dt : Moving $item to processed" 
    } 
 }  

为了完整起见,我已经检查了一些来源:

【问题讨论】:

    标签: powershell ftp directory


    【解决方案1】:

    这会将文件上传到yy/mm/dd 文件夹:

    $uri = New-Object System.Uri($ftp + $(Get-Date -f "yyyy/MM/dd") + "/" + $name)
    

    (假设$ftp 已经以斜线结尾)

    但该文件夹必须已经存在。


    如果该文件夹不存在,则必须创建它:
    Creating a directory on remote FTP using powershell

    您可能需要创建所有关卡:

    • $ftp + $(Get-Date -f "yyyy")
    • $ftp + $(Get-Date -f "yyyy/MM")
    • $ftp + $(Get-Date -f "yyyy/MM/dd")

    显然,将Get-Date 存储到变量中并重用它是个好主意。如果在执行过程中开始新的一天,为了保护您免受问题的影响。

    【讨论】:

    • 我是否需要对每个上传的文件添加检查以检查目录是否已存在?当另一个文件重新创建文件夹时“再次创建”文件夹(其中已经有一个文件)会发生什么?这会引发错误吗?
    • 是的,它会抛出一个错误。这取决于您,如果您选择先检查并仅创建,如果它不存在。或者只是尝试总是忽略错误。
    • 我收到关于 uri 值不是字符串的错误。我尝试将其转换为这样的:编辑:标记很难。链接:i.imgur.com/f3Dx7md.png
    • 我设法通过在它周围放置括号来修复它,(Create-FtpDirectory $uri $user $pass) 而不是 Create-FtpDirectory $uri $user $pass... 继续我的 Powershell 冒险!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2014-05-15
    相关资源
    最近更新 更多