【发布时间】:2017-09-18 18:53:50
【问题描述】:
我遇到了一个奇怪的错误。当我运行以下内容时,它在下面给了我这个错误。 $inputfolder 中的文件名是正确的,但文件路径更改为 当前驱动器,而不是我定义为 $inputfolder 的路径。这就是它“找不到文件”的原因。
找不到文件“C:\path\of\current\drive\batch.csv”。
当我将 .ps1 移动到 $inputfolder 时,它可以工作。我不知道我做错了什么。定义了变量。 另外,$outputpath 不起作用。在输入文件夹中创建 done.csv 文件。
$inputfolder = 'C:/path/to/folder/'
$inputobject = Get-ChildItem $inputfolder
$outputpath = Join-Path $inputfolder 'done.csv'
Import-Csv $inputobject | select COLUMN1,COLUMN1 | Export-Csv -Path $outputpath -NoTypeInformation
编辑:完整的错误报告;同样,“path\of\current\drive”是我拥有 .ps1 所在文件夹的位置,即使我定义了我的变量,它也只有在我将 .ps1 移动到 $inputfolder 时才能正常工作。
Import-Csv : Could not find file 'C:\path\of\current\drive\batch.csv'.
At C:\path\of\current\drive\myscript.ps1:9 char:1
+ Import-Csv $inputobject | select COLUMN1,COLUMN2 | Export-Cs ...
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:) [Import-Csv], FileNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ImportCsvCommand
【问题讨论】:
-
使用另一个斜杠,那些是前斜杠
/,windows中的路径使用反斜杠\ -
大多数在 Windows 中使用路径名的上下文都采用
/或` as the path separator;cmd.exe`,因为它使用/而不是-作为切换指示器。 -
就输出 csv 被放入输入文件夹而言,它完全按照您的指示进行操作。
-
@JeffZeitlin 不幸的是,将“/”更改为“\”给出了同样的错误..
-
@MacroPower - 是的,
Select-Object -Property *也可以工作,也很有用。
标签: powershell csv path import-csv