"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que não consigo executar comandos complexos do ImageMagick no Powershell, mas eles funcionam no CMD?

Por que não consigo executar comandos complexos do ImageMagick no Powershell, mas eles funcionam no CMD?

Publicado em 2024-11-08
Navegar:694

Why Can\'t I Run Complex ImageMagick Commands in Powershell, But They Work in CMD?

O comando ImageMagick não pode ser executado no Powershell, mas é executado sem problemas na janela cmd

Ao tentar utilizar comandos do ImageMagick, os usuários enfrentaram desafios ao executá-los nas janelas do Powershell. Os comandos são executados perfeitamente nas janelas cmd. As tentativas de resolver o problema adicionando barras invertidas antes dos parênteses também não tiveram êxito. As investigações revelam que a diretiva magick está de fato incluída nas variáveis ​​de ambiente.

Apesar da incapacidade de executar comandos complexos no Powershell, comandos simples são executados sem problemas. Isso sugere que o problema está especificamente em comandos complexos. executando comandos em vários ambientes, incluindo:

Bash/Unix/Linux Shells:

Bash interpreta caracteres específicos, como # para cores hexadecimais e parênteses para subprocessos, exigindo escape ou sintaxe alternativa.
  • Arquivos CMD32/BATCH do Windows: Caracteres como parênteses, símbolos menores e maiores que e sinais de porcentagem precisam escapar para evitar confusão com a sintaxe do shell.
  • Powershell: Parênteses e caracteres de continuação de linha exigem escape com crases para a execução adequada do comando.
  • Exemplos específicos de sintaxe de comando para ambientes diferentes
Bash :

mágica IMAGE1.PNG \ \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \ -composto -transparent 'hsl (40,50,60)' resultado.png

Windows CMD32:
magick IMAGE1.PNG \
   \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \
  -composite -transparent 'hsl(40,50,60)' result.png

magick IMAGE1.PNG ^ ( IMAGE2.PNG -redimensionar 50%% -preencher "#ff0000" -colorizar 100% ) ^ -composto -transparente "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

magick IMAGE1.PNG ` `( IMAGE2.PNG -redimensionar 50% -preencher "#ff0000" -colorizar 100% `) ` -composto -transparente "hsl(40,50,60)" result.pngInvocação de comando entre plataformas

magick IMAGE1.PNG `
   `( IMAGE2.PNG -resize 50% -fill "#ff0000" -colorize 100% `) `
  -composite -transparent "hsl(40,50,60)" result.png

script.mgk:

-tamanho 640x480 xc:#ffff00 (foreground.png -resize 50%) -gravity center -composite -write result.png

Invocação:
magick IMAGE1.PNG \
   \( IMAGE2.PNG -resize 50% -fill '#ff0000' -colorize 100% \) \
  -composite -transparent 'hsl(40,50,60)' result.png

magick -script script.mgkAo empregar esta técnica, o shell permanece independente dos símbolos e caracteres usados ​​no script, garantindo uma execução perfeita em diferentes ambientes.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3