导入CSV问题powershell

导入CSV问题powershell,powershell,csv,powershell-2.0,Powershell,Csv,Powershell 2.0,我正在编写一个脚本来自动添加用户。我想从目录中的所有CSV文件中读取,直到它们完成为止,然后我想将这些CSV移动到存档中。在程序中,我正在检查一个txt文件,以确保程序的另一个实例尚未运行。之后,我允许代码运行或程序结束。当我使用名为test.csv和test2.csv的一两个测试文件运行程序时,我没有任何错误。一旦我添加了random names.csv并尝试运行它们,我就会得到一个错误,导入csv找不到文件,路径告诉我文件不正确,它来自脚本的位置 这是我的密码: $fileDirectory

我正在编写一个脚本来自动添加用户。我想从目录中的所有CSV文件中读取,直到它们完成为止,然后我想将这些CSV移动到存档中。在程序中,我正在检查一个txt文件,以确保程序的另一个实例尚未运行。之后,我允许代码运行或程序结束。当我使用名为test.csv和test2.csv的一两个测试文件运行程序时,我没有任何错误。一旦我添加了random names.csv并尝试运行它们,我就会得到一个错误,导入csv找不到文件,路径告诉我文件不正确,它来自脚本的位置

这是我的密码:

$fileDirectory = "c:\test";

$CheckRun = Get-Content c:\test\checkrun.txt
Write-Host $($CheckRun)

if($CheckRun -eq "notrunning") {

    Get-ChildItem $fileDirectory -Filter *.csv | Foreach-Object {
        $list= Import-Csv $_
        $State = "running"
        $basename = $_.BaseName
        $file = $FileDirectory + "\" + $basename + ".csv"
        $ArchiveFile = $fileDirectory + "\archive\" + $basename + "old.csv"
        foreach ($entry in $list) {
            # will run command here using the entries from the CSVs
            write-Host $($entry.EMAIL) $($entry.FIRSTNAME) $($entry.LASTNAME) $($entry.PASSWORD)
        }

        Move-Item $($file) ${ArchiveFile} -force

        Write-Host "Press any key to continue ..."

        $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
        $State > c:\test\Checkrun.txt

    }

    $State = "notrunning"
    $State > c:\test\Checkrun.txt
    Write-Host "Press any key to continue ..."

    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
else {
    Write-Host "Press any key to continue ..."

    $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
    exit
}

当您获得子项时,您将获得一个文件对象。尝试引用全名,而不是对我有效:

 Get-ChildItem $fileDirectory -Filter *.csv | Foreach-Object {
        $list= Import-Csv $_.fullname

否则,它会试图查找您正在为文件运行脚本的路径,而不是解决我问题的C:\test\filename.csv

,我可以看出它想引用我运行的文件路径,但我不知道正确的语法。我还注意到它部分工作的原因是我在与脚本相同的文件夹中有前两个CSV的副本。谢谢