2017-03-14 11 views
0

私はthresholdという名前のプログラムを持っています。私はimagesという名前のディレクトリに一連の画像を持っています。それは引数としてディレクトリ名を受け入れるように、bashスクリプトを書いて、threshold.exeを引数としてプログラムに個別にディレクトリ内の各ファイルを渡す方法関数の引数としてファイル名を渡すスクリプト

|-- images 
| -----img_1.jpg 
| -----img_2.jpg 
| -----img_3.jpg 
| ------ 
| ------img_n.jpeg 
|-- threshold.exe 
|-- myscript 

私は、

$./myscript images 

を実行すると、最終的な実行は、次のようにする必要があります。あなたは、Windows環境であると仮定すると、

./threshold.exe img_1.jpg
./threshold.exe img_2.jpg
....
....
./threshold.exe img_n.jpg

+1

あなた自身で試したこと/ – Inian

+0

実行時に、バッチファイルには「内部」変数が用意されています。バッチファイル "DoIt.bat"を想定します。この 'doit.bat"のような呼び出しは、変数 "%1"への "c:\ folder path \"を\ "どこにでも置いています。したがって、%1のファイルリストを照会し、各ファイルを 'threshold @ file'に渡します。 [ForFiles](https://ss64.com/nt/forfiles.html)/ [バッチパラメータ](https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/) percent.mspx?mfr = true)楽しんでください。試してみて、コードを投稿すれば、さらに手伝ってくれるでしょう。あなたはWindowsにいますか? –

+0

'%% i for(ディレクトリ\ * .jpgへのパス)のようなものは、threshold.exe %% i'と同じように動作します。 –

答えて

0

パス内の各ファイル-For
forfiles /p %1 /m *.jpg /c "cmd /c threshold.exe @file" 

/p)%1

-Where%1フォルダ別名あなたが

-runコマンド(/ccmd /c threshold.exe @fileに検索したい、渡されたパラメータであり、

-Where @file

がjpgファイル

+0

OPは "バッチ"質問ではなく "bash"質問をし、プログラムを起動するために '。/'を使用しているので、安全な仮定のようには見えません。 –

+0

(... '.exe'拡張子は少し矛盾していますが、確かではありません.Winで実行されるUnixenやPEファイルでMonoと一緒に実行されるCLR実行可能ファイルは、通常拡張子をそのまま使用してインストールされます)。 –

+0

@CharlesDuffy、同じキューに基づいて、私は彼がWindowsを実行していないと確信しています。うまくいけば、この情報は、彼または誰かが同様の答えを探しているのを助けることができます。 –

0
#!/bin/bash 
for dir; do 
    for f in "$dir"/*; do 
    ./threshold.exe "$f" 
    done 
done 
へのパスを表し、

これは、次のように動作します。コマンドライン引数を超える

  • まず、反復処理し、ディレクトリ
  • として次の各治療、そして、現在のディレクトリ内のファイルを反復処理
  • 、それぞれの実行可能ファイルを呼び出しますこれは、フォーム./threshold img_1.jpgのではなく、形./threshold.exe images/img_1.jpgのものであろうことを

注意を提出 - 私たちはから./threshold.exeを実行しているように、これは必要ですディレクトリに実際にthreshold.exeが含まれていて、依然としてファイルへの有効な相対パスが提供されています。

関連する問題