2 votes

Comment utiliser iwr pour télécharger des fichiers dans un répertoire avec un espace à l'intérieur depuis runbox ?

Tout d'abord, je sais que la réponse évidente est de ne pas utiliser un répertoire contenant un espace, mais à ce stade, cela m'ennuie de ne pas savoir comment faire.

$f = "$env:userprofile/desktop/art folder/art.png"

iwr DropBoxUrl -o $f 

cela fonctionne bien dans une console powershell mais dans le runbox, il y a l'erreur suivante :

At line:1 char:22
+ $s = $env:USERPROFILE\desktop\art folder\art.png; iwr https://www.dropb ...
+                      ~~~~~~~~~~~~
Unexpected token '\desktop\art' in expression or statement.

1voto

mklement0 Points 12597

En supposant que vous parliez de la boîte de dialogue Exécuter de Windows ( WinKey-R ):

  • Pour l'utiliser, il faut appeler l'interface de programmation PowerShell ( powershell.exe pour Windows PowerShell, pwsh pour PowerShell (Core) 7+)

  • Puisque vous essayez d'exécuter commandes (plutôt qu'un Fichier script. ( .ps1 )), l'utilisation du -Command ( -c ) est nécessaire.

    • Note : Alors que -Command ( -c ) peut être omis avec powershell.exe parce qu'il s'agit de la valeur par défaut, vous doit l'utiliser avec pwsh dont la valeur par défaut est -File
  • Tous " les caractères qui feront partie de la (des) commande(s) PowerShell à exécuter doit être échappé como \" .

    • Si vous n'y échappez pas, ils sont supprimée lors de l'analyse initiale de la ligne de commande, ce qui a entraîné l'erreur que vous avez constatée.

    • Voir cette réponse pour une explication.

Par conséquent, en utilisant powershell.exe :

powershell.exe -noexit -c "$f = \"$env:userprofile/desktop/art folder/art.png\"; iwr DropBoxUrl -o $f"

Note : J'ai ajouté le -noexit afin de maintenir la session ouverte, ce qui vous permet de voir les résultats.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X