Maison >développement back-end >Golang >Pourquoi ne puis-je pas exécuter des commandes ImageMagick complexes dans Powershell, mais elles fonctionnent dans CMD ?
En essayant d'utiliser les commandes ImageMagick, les utilisateurs ont rencontré des difficultés pour les exécuter dans les fenêtres Powershell. Les commandes s'exécutent de manière transparente dans les fenêtres cmd. Les tentatives pour résoudre le problème en ajoutant des barres obliques inverses avant les parenthèses ont également échoué. Les enquêtes révèlent que la directive magick est effectivement incluse dans les variables d'environnement.
Malgré l'impossibilité d'exécuter des commandes complexes dans Powershell, les commandes simples s'exécutent sans problème. Cela suggère que le problème réside spécifiquement dans les commandes complexes.
ImageMagick offre une vaste gamme d'options et de fonctionnalités, ce qui nécessite une attention particulière aux citations et aux échappements lorsque exécuter des commandes dans divers environnements, notamment :
Bash :
magick IMAGE1.PNG \ \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \ -composite -transparent 'hsl(40,50,60)' result.png
Windows CMD32 :
magick IMAGE1.PNG ^ ( IMAGE2.PNG -resize 50%% -fill "#ff0000" -colorize 100% ) ^ -composite -transparent "hsl(40,50,60)" result.png
Powershell :
magick IMAGE1.PNG ` `( IMAGE2.PNG -resize 50% -fill "#ff0000" -colorize 100% `) ` -composite -transparent "hsl(40,50,60)" result.png
Pour éviter les problèmes potentiels résultant de contraintes de syntaxe spécifiques à l'environnement, une approche indépendante de la plate-forme implique l'utilisation de scripts. Les commandes peuvent être contenues dans un fichier avec une extension ".mgk", et ImageMagick peut l'exécuter directement, en évitant le besoin d'interprétation du shell et en citant les problèmes :
script.mgk:
-size 640x480 xc:#ffff00 ( foreground.png -resize 50% ) -gravity center -composite -write result.png
Invocation :
magick -script script.mgk
En employant cette technique, le shell reste indépendant des symboles et des caractères utilisés dans le script, garantissant une exécution transparente dans différents environnements.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!