我有400个要查询的IP地址列表,但它只输出324。
故障排除显示数据库事务卡在catch {}块中。
出于某种原因,它没有输出代码,"没有数据为$ k"
如何排除故障?
foreach ($k in $file_line){
$SQL = "SELECT ...
AND [IP_ADDR1_TEXT] = '$k'"
$cmd = New-Object System.Data.SqlClient.SqlCommand($SQL,$conn)
$start = Get-Date
do{
try{
$rdr = $NULL
$rdr = $cmd.ExecuteReader()
while ($rdr.read()){
$sql_output += ,@($rdr.GetValue(0), $rdr.GetValue(1), $rdr.GetValue(2), $rdr.GetValue(3), $rdr.GetValue(4), $rdr.GetValue(5),$rdr.GetValue(6))
}
$transactionComplete = $true
}
catch{
$transactionComplete = $false
if (((Get-Date)-$start).TotalSeconds -gt 5) {
Write-host "No data for $k"
$transactionComplete = $true
}
}
}until ($transactionComplete)
}
答案 0 :(得分:0)
您可以尝试使用Powershell ISE或类似工具调试脚本,该工具可让您设置断点并逐步执行脚本。
powershell_ise.exe
有关如何在Powershell ISE中进行调试的说明,请查看: