cmd.exe에서 설치된 다른 명령과 함께 별표(*) 와일드카드를 사용하시겠습니까?

cmd.exe에서 설치된 다른 명령과 함께 별표(*) 와일드카드를 사용하시겠습니까?

슈퍼유저에 대해 질문하는 것은 이번이 처음입니다. 누군가 내 문제를 해결하도록 도와줄 수 있기를 바랍니다.

먼저, 제가 하려는 일이 무엇인지 설명하겠습니다. 나는 다른 응용 프로그램 설치 명령을 사용하여 내 사진(hdr 형식)을 결합하는 데 도움이 되도록 Windows cmd.exe 셸을 사용하고 있습니다. 명령은 매우 쉽습니다. 명령을 작성하고 그 뒤의 모든 데이터를 선택하기만 하면 됩니다. 명령은 다음과 같이 간단해 보일 수 있습니다.

mydir > pcomb images\patches\*.hdr > images\combinedimages.hdr

하지만 다음과 같은 오류가 발생합니다.

images\patches\*.hdr: Invalid argument

나는 이미 해결책을 찾고 있었고 몇 가지 단서를 얻었습니다. '*' 와일드카드는 아래 명령처럼 'type' 및 'dir'과 같은 다른 명령에서는 작동하지만 Windows 표준 셸에서는 작동하지 않는 것으로 보입니다.

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

그러던 중 누군가 내가 다음을 수행해야 한다고 말했습니다.

  1. 간단히 Windows용 git을 설치하여 Cygwin 쉘을 사용하십시오(bash 타이핑 스타일을 사용하더라도 문제는 여전히 존재합니다).
  2. 이미 수행한 일부 명령을 통해 철자된 전체 파일 목록을 제공해야 합니다(그러나 cmd.exe에는 행 수가 제한되어 있고 철자할 파일이 수천 개 있으므로 또 다른 문제가 있습니다).

이것에 대한 해결 방법이 있습니까?

문법이 좋지 않아서 죄송합니다. 영어가 너무 유창하지 않습니다.

답변1

문제의 실행 파일은 다음과 같습니다.https://floyd.lbl.gov/radiance/man_html/pcomb.1.html

그렇다면 문서가 부족하지만, 제공된 예제를 올바르게 따르면(입력 파일이 2개만 표시되고 "점을 만들 때"를 제외하고 >? 표기법이 없음)

그렇다면 나는 당신이 하려는 것이 일반적인 명령줄에서 직접 수행하는 것과 같은 것이라고 믿습니다.

옵션 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"

옵션 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"

위의 테스트 결과가 예상대로 작동한다고 가정하면 테스트에서 작동하는 옵션에 따라 다음을 수행할 수 있습니다.

옵션 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"

옵션 2:

FOR %A IN ("C:\images\patches\*.hdr" ) DO (
  pcomb "%A" > "C:\images\combinedimages.hdr"
)

관련 정보