【发布时间】:2020-06-18 06:32:11
【问题描述】:
我需要一些帮助...我是 powershell 新手,我想过滤列表 (csv)。我很想删除其中包含某些名称的所有行。并将列表缩减到上个月。在脚本中,您可以看到我到目前为止走了多远。
param(
[Parameter(ValueFromPipeline=$true,HelpMessage="Enter CSV path(s)")]
[String[]]$Path = $null
)
if($Path -eq $null) {
Add-Type -AssemblyName System.Windows.Forms
$Dialog = New-Object System.Windows.Forms.OpenFileDialog
$Dialog.InitialDirectory = "$InitialDirectory"
$Dialog.Title = "Select CSV File(s)"
$Dialog.Filter = "CSV File(s)|*.csv"
$Dialog.Multiselect=$true
$Result = $Dialog.ShowDialog()
if($Result -eq 'OK') {
Try {
$Path = $Dialog.FileNames
}
Catch {
$Path = $null
Break
}
}
else {
Write-Host -ForegroundColor Yellow "Notice: No file(s) selected."
Break
}
}
$info=Import-Csv "$path" -Delimiter ';'
$info | Get-Member
$info | Format-Table
如您所见,我尝试将路径链接到文件浏览器。
【问题讨论】:
-
“名称”是什么意思?你是指文件中的数据列还是只是标题?
-
显示包含您的第一个文件以及您期望的输出。
-
是的,我的意思是那些数据列
-
如果您想从该对象检索属性以对所述属性进行进一步处理,请不要使用
format-table。它应该仅用于显示目的。 -
很抱歉,但我无法显示此文件...但作为输出,我希望得到同一张表而没有几个名称。
标签: excel powershell csv