首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在循环中获取文件名

在循环中获取文件名
EN

Stack Overflow用户
提问于 2018-06-20 06:05:11
回答 1查看 1.1K关注 0票数 0

这段代码运行并给出了文件夹中的文件名,但它也抛出了一个错误:

导入-Csv:无法验证参数'Path‘上的实参。参数为null或为空。请提供非null或空的参数,然后重试该命令。

不确定是什么问题...

代码语言:javascript
复制
$files = Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv"
foreach ($item in $files) {
    $file_name = $item.name
    $check = Import-Csv $_
    if ($check) { ...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-20 06:41:53

仅当您通过管道(即,.使用|)数据从到cmdlet或函数。

代码语言:javascript
复制
foreach($item in $files){
  $file_name = $item.name
  $check = Import-Csv $item.FullName
  # work with $check
}

您还可以通过管道将$item连接到Import-Csv,并让PowerShell自动将文件的路径绑定到Import-CsvLiteralPath参数:

代码语言:javascript
复制
foreach($item in $files){
  $file_name = $item.name
  $check = $item |Import-Csv
  # work with $check
}

注意:__:下面的内容解决了此问题的以前版本:

在PowerShell 4.0中,您可以对结果数组使用属性枚举,如下所示:

代码语言:javascript
复制
(Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv").Name

或者使用ForEach-Object

代码语言:javascript
复制
Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv" |ForEach-Object Name

如果要编写与以前版本兼容的代码,请使用Select-Object

代码语言:javascript
复制
Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv" |Select-Object -ExpandProperty Name
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50937554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档