Je dois 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 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 Internet Explorer n'est pas disponible, ou la configuration de premier démarrage 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(par 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 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 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
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 un utilitaire en ligne de commande a une dépendance à IE.