J'ai besoin de télécharger une série de chaîne 9 en utilisant powershell, cependant les scripts que j'ai essayés ont des erreurs :
-
Ce script
$url="https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $rss=invoke-webrequest -uri $url $destination="D:\Videos\OfficePnP" [xml]$rss.Content|foreach{ $_.SelectNodes("rss/channel/item/enclosure") }|foreach{ "Vérification de $($_.url.split("/")[-1]), nous allons le sauter s'il existe déjà dans $($destination)" if(!(test-path ($destination + $_.url.split("/")[-1]))){ "Téléchargement : " + $_.url start-bitstransfer $_.url $destination } }
a échoué avec l'erreur :
Le contenu de la réponse ne peut pas être analysé car le moteur d'Internet Explorer n'est pas disponible, ou la configuration de premier lancement d'Internet Explorer n'est pas terminée. Spécifiez le paramètre UseBasicParsing et réessayez.
-
J'ai aussi essayé celui-ci
# --- paramètres --- $feedUrl = "https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $mediaType = "mp4high" $overwrite = $false $destinationDirectory = join-path ([Environment]::GetFolderPath("MyDocuments")) "OfficeDevPnP" # --- locaux --- $webClient = New-Object System.Net.WebClient # --- fonctions --- function PromptForInput ($prompt, $default) { $selection = read-host "$prompt`r`n(défaut : $default)" if ($selection) {$selection} else {$default} } function DownloadEntries { param ([string]$feedUrl) $feed = [xml]$webClient.DownloadString($feedUrl) $progress = 0 $pagepercent = 0 $entries = $feed.rss.channel.item.Length $invalidChars = [System.IO.Path]::GetInvalidFileNameChars() $feed.rss.channel.item | foreach { $url = New-Object System.Uri($_.enclosure.url) $name = $_.title $extension = [System.IO.Path]::GetExtension($url.Segments[-1]) $fileName = $name + $extension $invalidchars | foreach { $filename = $filename.Replace($_, ' ') } $saveFileName = join-path $destinationDirectory $fileName $tempFilename = $saveFilename + ".tmp" $filename if ((-not $overwrite) -and (Test-Path -path $saveFileName)) { write-progress -activity "$fileName déjà téléchargé" -status "$pagepercent% ($progress / $entries) complet" -percentcomplete $pagepercent } else { write-progress -activity "Téléchargement de $fileName" -status "$pagepercent% ($progress / $entries) complet" -percentcomplete $pagepercent $webClient.DownloadFile($url, $tempFilename) rename-item $tempFilename $saveFileName } $pagepercent = [Math]::floor((++$progress)/$entries*100) } } # --- faire le travail réel --- [string]$feedUrl = PromptForInput "Entrez l'URL du flux" $feedUrl [string]$mediaType = PromptForInput "Entrez le type média`r`n(options:Wmv,WmvHigh,mp4,mp4high,zune,mp3)" $mediaType $feedUrl += $mediaType [string]$destinationDirectory = PromptForInput "Entrez le répertoire de destination" $destinationDirectory # si le répertoire de destination n'existe pas, le créer if (!(Test-Path -path $destinationDirectory)) { New-Item $destinationDirectory -type directory } DownloadEntries $feedUrl
avec trop d'erreurs
4 votes
La réponse à votre problème se TROUVE dans le message d'erreur (utilisez le paramètre UseBasicParsing)
71 votes
Pour être honnête, il est facile de voir les mots "Internet Explorer" dans un message d'erreur et d'ignorer le reste du message alors que vous entrez dans une rage aveugle sur la dépendance d'un utilitaire en ligne de commande à IE.