Powershell-检查csv行是否有数据

Powershell-检查csv行是否有数据,powershell,powershell-4.0,Powershell,Powershell 4.0,试图让我找到的这段代码对我有用。我需要检查一个文件夹,看看是否有任何文件。如果是,请检查每一行,并检查是否至少存在一行数据(不包括标题)。有人帮我吗?不确定如何读取文件,然后检查行。或者其他方法来实现这一点 $csvData = Import-Csv "C:\Users\MG\Desktop\ScanFolder" { foreach($dataRow in $csvdata){ $result = #dosomething} if

试图让我找到的这段代码对我有用。我需要检查一个文件夹,看看是否有任何文件。如果是,请检查每一行,并检查是否至少存在一行数据(不包括标题)。有人帮我吗?不确定如何读取文件,然后检查行。或者其他方法来实现这一点

$csvData = Import-Csv "C:\Users\MG\Desktop\ScanFolder"                       
{
foreach($dataRow in $csvdata){
    $result = #dosomething} 
    if($result ){
        Write-Host "Data Exists"
    }
    else{
        Write-Host "Empty"
    }
}}

如果您
导入CSV
一个仅包含头记录的CSV文件,它将成功,但结果将是一个长度为零的数组。根据您的请求,您应该能够执行以下操作

$csvpath = "C:\CSVFiles"
ForEach ($file in (Get-ChildItem $csvpath)) {
    If ((Import-CSV $file).length -eq 0) {
        Write-Host "$file has no data"
    }
}

获取内容
在这里可能会有所帮助。如何知道是否至少存在一行数据?您需要解析CSV数据吗?只需检查文件大小是否为零?@DanWilson-不,如果CSV文件有标题但没有数据,则此操作无效。尝试了您的建议-使用我的CSV文件路径,但它没有任何作用。如中所示,它只是转到一个新的命令行。我遗漏了什么吗?这可能仅仅意味着所有CSV中至少有一行数据。还请注意,上面的代码假设
$csvpath
中的所有文件都是CSV文件。你在这个答案中所拥有的只是一个展示方法的框架;你可以——也应该——添加错误检查和附加报告。我只有一个文件,它只有标题。我想我的密码有错误。但是,当我使用admin运行时,出现以下路径错误:Import CSV:找不到文件“C:\WINDOWS\system32\test\u 1.CSV”。如何将路径指定为C:\Users\MG\Desktop\scanfolder对于导入CSV,您可能需要使用
$file.fullpath
而不是
$file
;我永远记不起在什么情况下需要它。是的,或者实际上,它可能是
fullname
;我是凭记忆工作的,我的还不够完美。尝试
获取ChildItem$csvpath |选择对象-第一个|获取成员
;这将为您提供文件对象中的字段和方法列表。