Exception Powershell下载文件工作不正常

Exception Powershell下载文件工作不正常,exception,powershell,download,Exception,Powershell,Download,我正在尝试编写一个powershell脚本,该脚本将基于当前目录设置下载目录变量,并将文件下载到该目录 #Dowload File function Download-File-Func($url, $targetFile) { "Downloading $url" $uri = New-Object "System.Uri" "$url" $request = [System.Net.HttpWebRequest]::Create($uri) $request.

我正在尝试编写一个powershell脚本,该脚本将基于当前目录设置下载目录变量,并将文件下载到该目录

#Dowload File
function Download-File-Func($url, $targetFile)
{
    "Downloading $url"
    $uri = New-Object "System.Uri" "$url"
    $request = [System.Net.HttpWebRequest]::Create($uri)
    $request.set_Timeout(600000) #10 minutes
    $response = $request.GetResponse()
    $totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
    $responseStream = $response.GetResponseStream()
    $targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList $targetFile, Create
    $buffer = new-object byte[] 10KB
    $count = $responseStream.Read($buffer,0,$buffer.length)
    $downloadedBytes = $count
    while ($count -gt 0)
        {
        [System.Console]::CursorLeft = 0
        [System.Console]::Write("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength)
        $targetStream.Write($buffer, 0, $count)
        $count = $responseStream.Read($buffer,0,$buffer.length)
        $downloadedBytes = $downloadedBytes + $count
    }

    "Finished Download"
    $targetStream.Flush()
    $targetStream.Close()
    $targetStream.Dispose()
    $responseStream.Dispose()
}
我的密码是:

cd downloads
$DevDownloadDirectory = [IO.Directory]::GetCurrentDirectory

$clnt = New-Object System.Net.WebClient

# download and extract the file
$url = “fileurl/file.zip"
$file = "$DevDownloadDirectory\file.zip"
$clnt.DownloadFile($url,$file)
我遇到的问题是,每当我看到它输出的这部分代码时:

使用“2”参数调用“DownloadFile”时发生异常:“异常 在WebClient请求期间发生。位于C:\directory\script.ps1:462 字符:20

  • $clnt.DownloadFile 应该是

    $DevDownloadDirectory = [IO.Directory]::GetCurrentDirectory()
    

    GetCurrentDirectory()是一个方法,如果不使用“()”,它将只返回相同的名称,但不返回当前目录。

    这里有帮助吗?注意以下行中的错误引号符号:
    $url=“
    还应注意GetCurrentDirectory()将返回PowerShell的工作目录,而不是您当前的目录。除非您自己更新它。您应该使用$pwd。谢谢,这解决了问题。我应该注意,我使用了Jason建议的$pwd,以便可以将工作目录作为变量的值。
    #Dowload File
    function Download-File-Func($url, $targetFile)
    {
        "Downloading $url"
        $uri = New-Object "System.Uri" "$url"
        $request = [System.Net.HttpWebRequest]::Create($uri)
        $request.set_Timeout(600000) #10 minutes
        $response = $request.GetResponse()
        $totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
        $responseStream = $response.GetResponseStream()
        $targetStream = New-Object -TypeName System.IO.FileStream -ArgumentList $targetFile, Create
        $buffer = new-object byte[] 10KB
        $count = $responseStream.Read($buffer,0,$buffer.length)
        $downloadedBytes = $count
        while ($count -gt 0)
            {
            [System.Console]::CursorLeft = 0
            [System.Console]::Write("Downloaded {0}K of {1}K", [System.Math]::Floor($downloadedBytes/1024), $totalLength)
            $targetStream.Write($buffer, 0, $count)
            $count = $responseStream.Read($buffer,0,$buffer.length)
            $downloadedBytes = $downloadedBytes + $count
        }
    
        "Finished Download"
        $targetStream.Flush()
        $targetStream.Close()
        $targetStream.Dispose()
        $responseStream.Dispose()
    }