powershell - Powershell 使用 1 行而不是 3 行
问题描述
我有数据文件
$data=gc c:\blabla.cfg
在里面我有各种各样的行,我想提取数据,例如,在我拥有的文件中:
SMTP_SERVER = smtp.bla.local
因此,如果我想在脚本中创建变量,例如: $smtp 其中包含此信息,我就是这样做的:
$tmp = $data | Select-string SMTP_SERVER
$smtp=($tmp -split ' ')[2]
它可能看起来有点愚蠢,只是我有很多配置要从文件中获取,并且我喜欢用管道将它放在一个衬里中,如果我这样做:
$smtp = $data | Select-String SMTP_SERVER | $_.Split(' ')[2]
我收到一条错误消息,说表达式只允许作为管道的第一个元素
解决方案
用一个ForEach-Object
Select-String -Path "c:\blabla.cfg" -SimpleMatch "SMTP_SERVER" | ForEach-Object { $_.ToString().Split(' ')[2] }
推荐阅读
- javascript - 如何使用 JavaScript ES6 创建画布类?
- angular - 如何在 Angular2+ 中将一个组件放在另一个组件的 templateUrl 中?
- sql - Db2 for i - 动态 FROM 子句
- javascript - 如何为 Vue.js 上的每个条目增加数据库中的字段
- mysql - 如何设计一个每分钟添加很多行的数据库/表
- java - 如何在 onActivityResult 中获取上下文
- php - 我的自动完成功能在 codeigniter 中不起作用
- android - 使用 RAW_PRIVATE 图像格式从 Pixel 2 提取 RAW 立体图像
- c# - Azure 函数停止工作 - 无法加载类型“Microsoft.Azure.WebJobs.BlobTriggerAttribute”
- dart - 从方法访问 Map 对象到 build 方法