Exception Powershell下载文件工作不正常
我正在尝试编写一个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.
#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()是一个方法,如果不使用“()”,它将只返回相同的名称,但不返回当前目录。这里有帮助吗?注意以下行中的错误引号符号:
还应注意GetCurrentDirectory()将返回PowerShell的工作目录,而不是您当前的目录。除非您自己更新它。您应该使用$pwd。谢谢,这解决了问题。我应该注意,我使用了Jason建议的$pwd,以便可以将工作目录作为变量的值。$url=“
#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() }