Question
[RESOLU] Erreur suite a Invoke-WebRequest
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Tout d'abord je tiens a dire que je debute vraiment , dans le sens ou je n'ai JAMAIS pris de cours PowerShell et que j'apprends sur le tas ^^
je vous explique mon probleme :
Je voudrais telecharger depuis un lien specifique , un fichier specifique et l'enregistrer dans un repertoire specifique ( beaucoup trop de \" specifique \" dans cette phrase
mais je suis confronté a une erreur me laissant sur le tas , je vous l'ai dit je debute . . .
Voici le code que j'uttilise actuellement :
[code:1]$downloadURL = 'www.mediafire.com/file/50zmt96dwr63i1x/1.2.13.Appx/file' ; $downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null ; $downloadRequest | out-null ; $downloadRequest.Links | out-null ; $AppxLink = ($downloadRequest.Links | Where-Object {$_ -like '*1.2.13*' -and $_-like '*download*'}).href | out-null ; $fileContents = $downloadRequest.Content | out-null ; [io.file]::WriteAllBytes(\"c:\download\$fileName\",$fileContents) | out-null[/code:1]
J'uttilise l'argument \" -OutNull \" pour attendre que la premiere commande finisse avant que ne debute la suivante . . .
Voici l'erreur que j'obtiens :
Exception lors de l'appel de « WriteAllBytes » avec « 2 » argument(s) : « La valeur ne peut pas être null.
Nom du paramètre : bytes »
Au caractère Ligne:1 : 421
+ ... out-null ; [io.file]::WriteAllBytes(\"c:\download\$fileName\",$fileCon ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ([], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentNullException
J'ai bien entendu fais des recherches avant de poster ici mais euh . . . bah en vain quoi :/
Si quelqu'un pouvait m'aider et surtout m'expliquer ou est l'erreur je vous en serai tres reconnaissant
Merci a vous et a bientot j'espere ^^
Pierre.M
Message édité par: Pierre.M, à: 21/09/18 19:45<br><br>Message édité par: Pierre.M, à: 7/10/18 07:42
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Pierre.M écrit:
De les retirer ne change pas le sens( beaucoup trop de \" specifique \" dans cette phrase )
Par contre de reformater le code d'exemple qu tu fournis faciliterais sa relecture
Quant à l'erreur, ton objet en paramètre n'est pas renseigné( elle contient $null). Une possible erreur en amont ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
oui tu as raison , retirer les \" spécifique \" ne changera pas le sens ^^
Voici le code reformaté avec une commande par ligne en espérant que ça puisse aider
[code:1]
$downloadURL = 'www.mediafire.com/file/50zmt96dwr63i1x/1.2.13.Appx/file' ;
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null ;
$downloadRequest | out-null ;
$downloadRequest.Links | out-null ;
$AppxLink = ($downloadRequest.Links | Where-Object {$_ -like '*1.2.13*' -and $_-like '*download*'}).href | out-null ;
$fileContents = $downloadRequest.Content | out-null ;
[io.file]::WriteAllBytes(\"c:\download\$fileName\",$fileContents) | out-null
[/code:1]
Possible ? Oui surement mais tres sincèrement j'ai recherché , j'ai essayé d'autres syntaxes , retiré les -OutNullQuant à l'erreur, ton objet en paramètre n'est pas renseigné( elle contient $null). Une possible erreur en amont ?
( du coup j'ai les commandes qui se chevauchent et je me retrouve avec une suite d'erreur interminable comme si je m'etait chopé un virus )
J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/
Mais comme dit plus haut je debute c'est pour ca que je poste ici , en esperant que des personnes avec plus dexperience que moi pourraient me guider et peut etre voir ce que je n'ai pas vu
Message édité par: Pierre.M, à: 21/09/18 22:40<br><br>Message édité par: Pierre.M, à: 22/09/18 06:51
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
C'est peut être dû à une table carrée, d'habitude ça marche avec une table ronde. Me demande pas pourquoi...J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/
Sinon, sais-tu ce que fait Out-null ici ?
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
[/code:1]
Non ? Alors Get-Help Out-null
Et même plus
[code:1]
(Get-Help Out-null -full).returnValues
[/code:1]
d'où
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
Write-Warning \"$($null -eq $downloadRequest)\"
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 22/09/18 13:47
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Pas certains de cette présupposition.J'utilise l'argument \" -OutNull \" pour attendre que la première commande finisse avant que ne débute la suivante . . .
Invoke-WebRequest me semble synchrone, je n'ai pas regardé le code source
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Pierryck M
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 7
- Remerciements reçus 0
Pierre.M écrit:
C'est peut être dû à une table carrée, d'habitude ça marche avec une table ronde. Me demande pas pourquoi...J'ai meme essayé la magie noire et le spiritisme , mais la aussi en vain , je n'ai rien trouvé :/
Sinon, sais-tu ce que fait Out-null ici ?
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
[/code:1]
Non ? Alors Get-Help Out-null
Et même plus
[code:1]
(Get-Help Out-null -full).returnValues
[/code:1]
d'où
[code:1]
$downloadRequest = Invoke-WebRequest -Uri $downloadURL -UseBasicParsing | out-null
Write-Warning \"$($null -eq $downloadRequest)\"
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 22/09/18 13:47
Je te remercie de ta reponse mais . . .
Peut tu m'expliquer s'il te plait ? non pas que je n'ai pas cherché a comprendre bien au contraire , mais j'avoue ne pas comprendre
De base dans le programme powershell complet ( plus un tas de fenetre avec des boutons qu'un programme ) la suite de commandes que je t'ai donnée devait s'executer les unes apres les autres dans l'ordre indiqué quand on cliquait sur le bouton \" INSTALL\" , on m'avait ( ou plutot Internet m'avait ) expliqué que -OutNull servait a dire a powershell qu'il devait attendre la fin de l'execution de la commande rattachée a -outNull avant d'entamer la suivante :/Sinon, sais-tu ce que fait Out-null ici ?
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [RESOLU] Erreur suite a Invoke-WebRequest