これは私のPowerShellスクリプトです。最後の行にこれを追加することによって、今、私は、ファイルにそれをダンプする場合PowerShell 101:select-objectを使用して予期しない結果がセットコンテンツにパイプされました
insert into @codes values ('37025012', 'SAW BLADE PROFIX', '', '')
insert into @codes values ('37067808', 'ROD SUPER FLEX DANEK', '', '')
insert into @codes values ('52600200', 'GENERATOR PRECISION SCS ADVANCED BIONICS', '', '')
:これは私がホストに出力し、期待し
import-csv .\CdmCodeList.csv | select-object -first 3 {
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
}
:私は意図はかなり明白だと思います:
| set-content -path "my.sql"
my.sqlの結果の内容は、私が欲しいものではない、と私には非常に驚くべきこと:
@{
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
=insert into @codes values ('37025012', 'SAW BLADE PROFIX', '', '')}
@{
$id = $_.ItemDescription.Replace("'", "''");
$mn = $_.ManufacturerName.Replace("'", "''");
$mc = $_.ManufacturerCode.Replace("'", "''");
"insert into @codes values ('$($_.ItemCode)', '$id', '$mn', '$mc')";
=insert into @codes values ('37067808', 'ROD SUPER FLEX DANEK', '', '')}
...etc...
2つの質問:1. PowerShellとは何ですか? 2.ファイル出力をホスト出力のように見えるようにするにはどうすればよいですか?
パーフェクト - あなたに感謝。このスクリプトはあなたの変更に対応しており、私の選択オブジェクトが_scriptblocks_を出力していたことを知っていれば、将来私に役立つでしょう。 – pettys
'select-object'の呼び出しの一部として' {...} 'セクション(スクリプトブロック)があったので、スクリプトブロックを出力していました。それをもっと明確にするために。言い換えれば、scriptblockを与えていたのは、スクリプトブロックブロックを与えたからです。 –
これは理にかなっています.PowerShellが他のオブジェクトと同様にスクリプトブロックを処理できることはわかりませんでした。 :)ありがとうございました。 – pettys