Esta é a primeira vez que questiono algo sobre superusuário, espero que alguém possa me ajudar com meu problema.
Primeiro, deixe-me explicar o que estou tentando fazer. Estou usando o shell cmd.exe do Windows para me ajudar a combinar minha imagem (formato HDR) usando outro comando instalado no aplicativo. O comando é bastante fácil, basta escrever o comando e selecionar todos os dados depois dele. O comando pode parecer tão simples quanto este
mydir > pcomb images\patches\*.hdr > images\combinedimages.hdr
mas lá se vai o erro que diz
images\patches\*.hdr: Invalid argument
Já procurei a solução e então tive uma pista. Parece que o curinga '*' não funciona com o shell padrão do Windows, embora o curinga funcione com outros comandos, como 'type' e 'dir', assim como o comando abaixo
mydir > dir images\patches\*.hdr
22/07/2019 13.47 938.824 p000.hdr
22/07/2019 13.47 938.824 p001.hdr
22/07/2019 13.47 938.824 p002.hdr
22/07/2019 13.47 938.824 p003.hdr
22/07/2019 13.47 938.824 p004.hdr
22/07/2019 13.47 938.824 p005.hdr
Então alguém disse que eu tenho que:
- use o shell Cygwin simplesmente instalando o git para Windows (o problema ainda existe mesmo que eu esteja usando o estilo de digitação bash).
- Tenho que fornecer uma lista completa de arquivos explicados por meio de algum comando que já fiz (mas existe outro problema, pois cmd.exe tem um número limitado de linhas e tenho milhares de arquivos para soletrar)
existe alguma solução alternativa para isso?
Desculpe pela má gramática escrita, não sou muito fluente em inglês
Responder1
Este é o executável em questão:https://floyd.lbl.gov/radiance/man_html/pcomb.1.html
Nesse caso, a documentação é escassa, para dizer o mínimo, mas se eu seguir os exemplos dados corretamente (que mostram apenas 2 arquivos de entrada e NÃO possui a notação >? exceto "ao fazer um ponto")
Nesse caso, acredito que o que você está procurando fazer é algo assim na linha de comando normal manualmente:
Opção 1:
pcomb "C:\images\patches\938.824 p000.hdr" "C:\images\patches\938.824 p001.hdr" "C:\images\patches\938.824 p002.hdr" >"C:\images\combinedimages.hdr"
Opção 2:
pcomb "C:\images\patches\938.824 p000.hdr" > "C:\images\combinedimages.hdr"
pcomb "C:\images\patches\938.824 p001.hdr" > "C:\images\combinedimages.hdr"
pcomb "C:\images\patches\938.824 p002.hdr" > "C:\images\combinedimages.hdr"
Supondo que o que foi dito acima, quando testado, funcione conforme o esperado, você pode fazer o seguinte com base na opção que funciona no teste:
Opção 1:
SET "_HDRFiles=" &REM Clearing the variable in the CLI in case you run this multiple times.
FOR %A IN ("C:\images\patches\*.hdr" ) DO (
CALL SET "_HDRFiles=%_HDRFiles% "%A""
)
pcomb %_HDRFiles% >"C:\images\combinedimages.hdr"
Opção 2:
FOR %A IN ("C:\images\patches\*.hdr" ) DO (
pcomb "%A" > "C:\images\combinedimages.hdr"
)