私は、配列上のforeachループを持つスクリプトを持っており、現在のオブジェクトを持つ文字列を使用しているはずです。しかし、文字列が適切に拡張されていません。
$Patterns = ("An", "array", "of", "strings")
$Template = "The current item is $_"
$Patterns | foreach { Does-Something $Template }
does-somethingの出力はテンプレート文字列を変数に置きますが、挿入することはありません。これは、foreach文と明示的な変数名を使用すると機能します。この仕事をするためには何を変更する必要がありますか?
EDIT:だから問題は、私ということです
$OutFile = "C:\Searched.txt"
$Path = "C:\Dev\Folder\To\Search"
$Patterns = ("Big", "Array", "of", "things", "to", "search")
$exp = @{Expression={$_.FileName};Label="File Name"}, `
@{Expression={$_.LineNumber};Label="Line #"}, `
@{Expression={$_.Path.Substring($Path.Length)};Label="Path ($Path)"}, `
@{Expression={$_.Line.Trim()};Label="Line ($_)"}
$Patterns | foreach {
get-childitem ($Path + "*") -include *.cs -recurse `
| select-string -pattern ($_ + "TableAdapter") `
| format-table $exp -AutoSize }
を:
[OK]を、私は理解に誤りがあったが、重要な何かを残し、そう私は実際のコードを投稿してみましょう私が使用しています愚かなことに、フォーマットテーブルに渡されている式ハッシュテーブルに$_
が埋め込まれていますが、フォーマットテーブルには$_
式が必要です。だから私は実際に必要な文字列で外側のスコープにアクセスすることはできません。
これを回避する方法はありますか?
ああ...実際には、ここで何が起こっているのか私には明らかにしている、私が何かを逃しました。質問を更新するつもりです。 – CodexArcanum
ファイルをパラメータとして受け取り、format-table($ exp)の列のリストを返す関数を作成するにはどうすればよいですか?そのような頭痛を排除するように見えます。 –