PowerShell中的Copy-Item; 不支持给定路径的格式

ajn*_*ral 3 windows string powershell

我对PowerShell比较陌生,我试图使用如下格式的文本文件来复制文件:

file1.pdf
dir1\dir2\dir3\dir 4

file2.pdf
dir1\dir5\dir7\di r8

file3.pdf
...etc.
Run Code Online (Sandbox Code Playgroud)

每个条目的第一行是文件名,第二行是C:\ Users的文件路径.例如,文件中第一个条目的完整路径为:

C:\Users\dir1\dir2\dir3\dir 4\file1.pdf
Run Code Online (Sandbox Code Playgroud)

下面的代码是我目前的代码,但我收到错误:"不支持给定路径的格式." 和之后的另一个错误,告诉我它找不到路径,我假设第一个错误的结果.我已经玩了一下,我得到的印象是它将字符串传递给Copy-Item.

    $file = Get-Content C:\Users\AJ\Desktop\gdocs.txt
    for ($i = 0; $i -le $file.length - 1; $i+=3)
    {
        $copyCommand = "C:\Users\" + $file[$i+1] + "\" + $file[$i] 
        $copyCommand = $copyCommand +  " C:\Users\AJ\Desktop\gdocs\"
        $copyCommand
        Copy-Item $copyCommand

    }
Run Code Online (Sandbox Code Playgroud)

Sha*_*evy 5

您可以以三行的块读取文件,连接前两个元素以形成路径并使用copy-item复制文件.

$to = "C:\Users\AJ\Desktop\gdocs\"

Get-Content C:\Users\AJ\Desktop\gdocs.txt -ReadCount 3 | foreach-object{
    $from = "C:\Users\" + (join-path $_[1] $_[0] )
    Copy-Item -Path $from -Destination $to
}
Run Code Online (Sandbox Code Playgroud)