そのため、テキスト ファイルから入力を取得し、入力した別のデータベースに対していくつかの SQL チェックを実行するコードをいくつか作成しました。
$volOutput = gc C:\Users\<user>\Desktop\mutant.txt
foreach ($m in $volOutput) {
$check = $m.split()[-1] | select -Unique
foreach ($c in $check) {
#$c - this lists all of them so the foreach is working...
# Build the connection and search the db for $c names.
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = "Server=(localdb)\mutex; Database=MutexObjects"
$conn.Open()
$db = $conn.CreateCommand()
$db.CommandText = "select Names from Objects WHERE Names='$c'"
$db.ExecuteScalar()
$conn.Close()
} # Foreach Check
} # First foreach
私が得る戻り値は次のとおりです。
PS C:\> B:\Programming\powershell\parse_vol.ps1
ZonesCounterMutex
ZoneAttributeCacheCounterMutex
ZonesCacheCounterMutex
ZoneAttributeCacheCounterMutex
ZonesLockedCacheCounterMutex
ZonesCounterMutex
ZoneAttributeCacheCounterMutex
ZonesCacheCounterMutex
ZoneAttributeCacheCounterMutex
ZonesLockedCacheCounterMutex
これは正しいですが、さらに多くのことが欠けています。たとえば、個々のサンプルを取得して SQL Management Studio 内からクエリを実行すると、次のようになります。
各リストに「テスト」という単語を....テストとして入力しました。
Select Names From Objects WHERE Names='test'
Names
test
しかし、上記のコードからの出力にテストが表示されません。SQL管理スタジオでdbをクエリして手動で検証したことは、不足しているものよりも約5〜6個多くあります。
どんな助けでも大歓迎です。