これは詐欺だが、しばらくの間検索した後、私のケースでうまくいった答えを見つけることができませんでした。powershellスクリプトがadd-memberのscriptproperty入力を正しく列挙していない
私は写真の顔を検索するpythonスクリプトを持っています。 Pythonスクリプトは正常に動作し、現在、その出力をcsvファイルに組み込み、いくつかの統計を実行するために使用できます。
powershellを入力してください。
$picts = gci *.jpg
$(foreach ($f in $picts)
{
$obj2 = New-Object System.Object
$obj2 | Add-Member -MemberType NoteProperty -Name fileName -Value $f.Name
$obj2 | Add-Member -MemberType ScriptProperty -Name datumN -Value {
python face_detect_batch.py $f.Name
}
$obj2
}
) | export-csv t.csv
Pythonスクリプトは、それが写真に関するいくつかの情報と一緒に供給されたファイル名を含む単一の行を出力します。
は、ここに私のPowerShellスクリプトです。
私は、その中に2つのjpeg、1.jpgと2.jpgを持つフォルダでスクリプトをテストしています。各写真で手書きでスクリプトを実行すると、期待どおりに動作します。私は次の出力を得るの写真を反復処理するために上記のスクリプトを実行した場合
しかし、:
#TYPE System.Object
fileName datumN
1.jpg name: 2.jpg; blurScore: 269; facex: 68; facey: 84; faceWidth: 155; faceHeight:155
2.jpg name: 2.jpg; blurScore: 269; facex: 68; facey: 84; faceWidth: 155; faceHeight:155
出力は、スクリプトの繰り返し処理は、私が期待していることを示しており、$obj2
年代に二つの異なるファイル名を追加しますfilenameプロパティを使用しますが、スクリプトプロパティのadd-memberを実行すると、私のpythonスクリプトには両方の時間に2.jpgが与えられます。
私は、add-memberの値フィールドに[ref]$f.name
と$global:f.name
を入力しようとしましたが、何も変更がありません。私はいつも2.jpgが私のpythonスクリプトに渡されます。
$f.Name
の最初の参照は、ファイルを期待どおりに列挙しますが、2番目の参照では最後のjpegのみが表示されるのはなぜですか?
'$ f.Name'の代わりに' $ this.Name'を試してみてください。 – Eris