Je dois télécharger une série d'épisodes du canal 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 le sauterons 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 première utilisation d'Internet Explorer n'est pas complète. Spécifiez le paramètre UseBasicParsing et réessayez.
-
J'ai également 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(default: $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 de 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 dossier 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
En toute justice, 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 pourquoi une utilité en ligne de commande a une dépendance à IE.