powershell - 换行后选择字符串
问题描述
我想从此命令中提取 ID:
manage-bde -protectors c: -get
该命令的结果是:
Volume C: [Windows]
Tous les protecteurs de clés
Mot de passe numérique :
ID : {XXXXXXX-A315-42C6-9754-XXXXXXXXXX}
Mot de passe :
XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
TPM :
ID : {XXXXXX-99B3-481B-B3FA-XXXXXXXXXXX}
Profil de validation PCR :
7, 11
(Utilise le démarrage sécurisé pour la validation d’intégrité.)
我只想要“Mot de passe numérique”中的 ID(第一个,但在某些 PC 上,它是第二个)而不是“TPM”
我试图用选择字符串来做到这一点,但它同时返回:/
有没有办法“告诉”选择字符串在“mot de passe numérique”表达式之后只打印 ID?
谢谢 :)
解决方案
使用Select-String
's-Context
参数表示您对匹配项周围的行感兴趣:
$mbdeOutput = manage-bde -protectors c: -get
$mbdeOutput |Select-String 'Mot de passe numérique :' -Context 0,1 |ForEach-Object { $_.Context.PostContext[0] }
这应该输出紧随其后的行Mot de passe numérique :
推荐阅读
- mysql - MySQL根据条件更改查询结果
- c# - C# - 使用 NLog 记录自定义异常
- javascript - 如果使用 babel 进行编译,是否需要 typescript 项目引用?(使用 Webpack 的电子项目)
- python - python类动态对象实例化/创建
- c# - CrossMediaManager MediaItemFinished 在 Xamarin Forms 中提供播放状态而不是停止
- java - Java 11 上的 SocketTimeout,但 Java 8 上没有
- c - 实例化 i2c 从设备时出错
- javascript - 使用reduce对2个属性进行分组
- flutter - 你如何在 Dart 中按 bool 对列表进行排序
- tensorflow - 如果批量标准化是模型的一部分,如何在 tensorflow 中为 LSTM 应用 Monte Carlo Dropout?