【问题标题】:Powershell downloading all possible files for a given dayPowershell 下载某一天所有可能的文件
【发布时间】:2017-09-01 19:14:11
【问题描述】:

我第一次使用 Powershell 从网页上为客户下载前一天的文件。该网页来自数据记录器,而不是供应商滑板。数据记录器始终以yyMMdd##.CSV 格式保存文件,其中## 是指定日期的序号文件(从00 开始)。查看网页时,我只看到给定日期的最大 CSV 文件数为 1(因此,2017 年 8 月 31 日的文件将是 17083100.CSV)。我已经编写了 Powershell 代码来给我昨天的文件,假设 00 是当天唯一的文件,但我希望有一种方法可以使用通配符或 for 循环来下载可能存在的任何其他文件前一天。请参阅下面的代码了解我目前拥有的内容:

 $a = "http://10.109.120.101/logs/Log1/"
 $b = (get-date).AddDays(-1).ToString("yyMMdd") + "00.CSV"
 $c = "C:\"
 $url = "$a$b"
 $WebClient = New-Object net.webclient
 $path = "$c$b"
 $WebClient.DownloadFile($url, $path)

【问题讨论】:

    标签: powershell csv download wildcard


    【解决方案1】:

    试试这样的:

    $Date=(get-date).AddDays(-1).ToString("yyMMdd")
    $URLFormat ='http://10.109.120.101/logs/Log1/{0}{1:D2}.CSV'
    
    $WebClient = New-Object net.webclient
    
    #build destination path
    $PathDest="C:\Temp\$Date"
    New-Item -Path $PathDest -ItemType Directory -ErrorAction SilentlyContinue 
    
    1..99 | %{
    
    $Path="$PathDest\{0:D2}.CSV" -f $_
    $URL=$URLFormat -f $Date, $_
    
    try
    {
        Write-Host ("Try to download '{0}' file to '{1}'" -f $URL, $Path)
        $WebClient.DownloadFile($Path, $URL)
    }
    catch
    {
    
    }
    
    }
    
    $WebClient.Dispose()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多