2017-10-13 12 views
1

フォルダからすべての画像、名前、サイズを取得しようとしています。私には2000以上のものがあります。私はプログラミングについて十分に知っているので、このコードを他のスタックオーバーフローの質問と一緒にまとめることができました。行は$imgInfo | Out-File -FilePath $outFile -Appendを除いてすべて期待どおりに動作します。変数がファイルに書き込まれない

$outFile = "G:\tempFile\imageSizes.txt" 

$(Get-ChildItem -Filter *.jpg).FullName | ForEach-Object { 
    $img = [Drawing.Image]::FromFile($_); 
    $imgInfo = "$([System.IO.Path]::GetFileName($_)) $($img.Width) x $($img.Height)" 
    return $imgInfo # this line is to check that $imgInfo has the correct information 
    $imgInfo | Out-File -FilePath $outFile -Append # this line isn't working 
} 

私は$imgInfo | Add-Content -Path $outFile$imgInfo | Out-File -FilePath $outFile -Appendを交換し、適切なファイルを作成しようとしたが、それはどちらか動作しませんでした。

+5

return $imgInfo 

あなたはどう思います置き換える 'return'をしているのですか? – PetSerAl

+0

'return'は' ForEach-Object'スクリプトブロック( '{}'の間のコード)を終了します。 –

+0

私はそれを考えていたはずです。 PowerShellの変数に含まれる値を印刷する最も良い方法は何ですか? C++の 'cout'に似た' print'関数がありますか? '$ imgInfo'と書くだけで、変数に格納された値を画面に表示させることができますか? –

答えて

2

チェックしたい場合は、返信を使用しないでください。それはブロックから出てくる。

だけ

Write-output $imgInfo 
関連する問題