powershell - 用于从 .csv 文件中读取 2 列数据的 Powershell 脚本
问题描述
我正在尝试编写一个 PowerShell 脚本来获取 csv 文件的 2 列:
ProductName ProductCode
-----------------------------------------------------------
Java 7 Update 67 {26374892-xxxx-xxxx-xxxx-123456789012}
Java 8 Update 25 {26374892-xxxx-xxxx-xxxx-902341562789}
我只想获取ProductCode
要在 foreach 循环中使用的列值。
我尝试了以下方式
$code1 = Get-Contect %path% | Foreach-Object {
$_ -split '\s+' | Select-object -skip 1 | Select-Object -Last 1
}
foreach($code in $code1){ write-host $code }
我的输出低于
67,{232424-55567-8879-xxxxxxx}
25,{324356456-5674-xxxx-xxxxxx}
但我只想输出产品代码,如
{3245345345-3454-56656757-xxxxx}
解决方案
这看起来并不像 CSV。我想说最简单的方法是这样的:
Get-Content %path% | Foreach-Object { $_ -split '\s+' | Select-Object -Last 1 }
这样,您将在多个空格上拆分字符串后获得最后一个对象
附言。如果您需要跳过标题,您可以| Select-Object -Skip 1
在 get-content
pps 之后添加。如果 import-csv 允许在delimiter
import csv 中使用正则表达式会更容易使用,但我怀疑它是否允许这样做。购买力平价。为我工作:
> cat .\Untitled-2.txt
ProductName ProductCode
Java 7 Update 67 {26374892-xxxx-xxxx-xxxx-123456789012}
Java 8 Update 25 {26374892-xxxx-xxxx-xxxx-902341562789}
> Get-Content .\Untitled-2.txt | select-object -skip 1 | Foreach-Object { $_ -split '\s+' | Select-Object -Last 1 }
{26374892-xxxx-xxxx-xxxx-123456789012}
{26374892-xxxx-xxxx-xxxx-902341562789}
推荐阅读
- flutter - Flutter Push 通知未在 IOS 上显示
- java - 为什么我的 Java 代码不能与 JavaFX 一起使用?
- cakephp - Cakephp 3.7 如何禁用身份验证错误消息
- sql - 如何获取关联的关联id是给定值的记录
- arrays - 使用具有多个值的过滤列中的唯一值填充数组
- android - 模态底片与持久底片性能
- r - R bvbox 中的 MVA 库 - 更改 yaxis 范围
- python - 如何在调整图像大小并将其保存到另一个文件夹时保留图像的文件名?
- php - 如何仅在组件类或插件上在十月 CMS 上创建中间件?
- python - 制作一个 0 到 nxn 矩阵并将其重塑为对