スーパーユーザーについて質問するのは初めてなので、誰かが私の問題を解決してくれることを願っています。
まず、私がやろうとしていることを説明しましょう。Windows cmd.exe シェルを使用して、別のアプリケーションにインストールされたコマンドを使用して写真 (HDR 形式) を結合しています。コマンドは非常に簡単で、コマンドを記述して、その後のすべてのデータを選択するだけです。コマンドは次のように簡単に見えるかもしれません。
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
すると誰かがこう言いました。
- Windows に git をインストールするだけで Cygwin シェルを使用できます (bash 入力スタイルを使用している場合でも問題は依然として存在します)。
- すでに実行したコマンドを使用して、ファイルの完全なリストを提供する必要があります (ただし、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"
)