这段代码运行并给出了文件夹中的文件名,但它也抛出了一个错误:
导入-Csv:无法验证参数'Path‘上的实参。参数为null或为空。请提供非null或空的参数,然后重试该命令。
不确定是什么问题...
$files = Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv"
foreach ($item in $files) {
$file_name = $item.name
$check = Import-Csv $_
if ($check) { ...
发布于 2018-06-20 06:41:53
仅当您通过管道(即,.使用|
)数据从到cmdlet或函数。
foreach($item in $files){
$file_name = $item.name
$check = Import-Csv $item.FullName
# work with $check
}
您还可以通过管道将$item
连接到Import-Csv
,并让PowerShell自动将文件的路径绑定到Import-Csv
的LiteralPath
参数:
foreach($item in $files){
$file_name = $item.name
$check = $item |Import-Csv
# work with $check
}
注意:__:下面的内容解决了此问题的以前版本:
在PowerShell 4.0中,您可以对结果数组使用属性枚举,如下所示:
(Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv").Name
或者使用ForEach-Object
Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv" |ForEach-Object Name
如果要编写与以前版本兼容的代码,请使用Select-Object
Get-ChildItem "C:\Users\MG\Desktop\ScanFolder\*.csv" |Select-Object -ExpandProperty Name
https://stackoverflow.com/questions/50937554
复制相似问题