我有一个使用 kpscript 从 keepass 数据库中检索信息的命令。此命令可能会检索 1 行,多行没有,但最后,它总是返回以下输出:
OK: Operation completed successfully.
如果 StartsWith("OK:"): 示例:使用 PowerShell 单独处理每一行并退出循环的最佳方法是什么:
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.