PS脚本在错误的文件夹中查找文件

时间:2018-07-09 15:45:26

标签: powershell csv import

由于某种原因,即使我指定了$inputfolder,我在脚本中仍然遇到错误,说它正在寻找[the target file from the $inputfolder],但在脚本所在的文件夹中。我不明白为什么。谢谢。

$inputfolder = 'C:\path\to\file\'
$inputobject = Get-ChildItem $inputfolder
$outputpath = Join-Path $inputfolder 'dundada.csv'

Import-Csv $inputobject | select column1 | Export-Csv -Path $outputpath -NoTypeInformation

这是我得到的错误:

Import-Csv : Could not find file 'C:\path\to\folder\containing\PS\script\Target_File_from_Input_Folder.csv'.

2 个答案:

答案 0 :(得分:3)

问题在于您在此处向cmdlet提供的内容:

Import-Csv $inputobject

仅为filename.csv,这意味着PowerShell会在当前文件夹中查找文件。如果要指定文字路径,则必须使用

Import-Csv $inputobject.FullName

那是为什么? PowerShell尝试以某种方式将您提供的值转换为所需的参数。在这种情况下,它会尝试使用.ToString()转换为字符串并将其提供给-LiteralPath(因为它是唯一的required parameter)。

答案 1 :(得分:-1)

我认为$ inputobject = Get-ChildItem $ inputfolder不会获取文件名,而是输入文件夹的目录结构。也许尝试

$inputobject = Get-ChildItem $inputfolder -Name *.csv

假设输入文件夹中只有一个csv文件