kpscript を使用して keepass データベースから情報を取得するコマンドがあります。このコマンドは、1 行、複数行を取得できますが、最終的には常に次の出力を返します。
OK: Operation completed successfully.
PowerShell で各行を個別に処理し、StartsWith("OK:") の場合にループを終了する最善の方法は何ですか? 例:
KPScript -c:GetEntryString $PASSHOME\$PASSFILE -pw:$PASS -Field:UserName $SEARCH
Administrator
OK: Operation completed successfully.
私が失敗した次のアプローチ
$UNAME = KPScript -c:GetEntryString $PASSHOME\$PASSFILE -pw:$PASS -Field:UserName $SEARCH
IF(! $UNAME){
write-host "UNAME1=$UNAME"
write-host "ERROR UNAME" -foreground "red"
exit
}
と
while (! $UNAME) { KPScript -c:GetEntryString $PASSHOME\$PASSFILE -pw:$PASS -Field:UserName $SEARCH }
こちらも失敗
$UNAME=KPScript -c:GetEntryString $PASSHOME\$PASSFILE -pw:$PASS -Field:UserName $SEARCH
write-host "UNAME=$UNAME"
結果:
UNAME=Administrator OK: Operation completed successfully.
UNAME=administrator UNAME=OK: 操作は正常に完了しました。したがって、すべての行を個別に処理できます
多分これは配列で達成できますか?
こちらも失敗
$UNAME=@(KPScript -c:GetEntryString $PASSHOME\$PASSFILE -pw:$PASS -Field:UserName $SEARCH)
write-host "UNAME=$UNAME"
出力は同じです:
UNAME=Administrator OK: Operation completed successfully.