在PowerShell中复制项目; 给定path的格式不被支持

我对PowerShell相对来说比较新,而且我正在尝试使用像这样格式化的文本文件来复制文件:

file1.pdf dir1\dir2\dir3\dir 4 file2.pdf dir1\dir5\dir7\di r8 file3.pdf ...etc. 

每个条目的第一行是文件名,第二行是C:\ Users的文件path。 例如,文件中第一个条目的完整path是:

 C:\Users\dir1\dir2\dir3\dir 4\file1.pdf 

下面的代码是我目前有,但我得到的错误:'给定path的格式不支持。 和另一个错误之后,告诉我它无法findpath,我认为这是第一个错误的结果。 我已经玩了一下,我得到的印象是将string传递给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 } 

您可以以三行块的形式读取文件,加入前两个元素以形成路径,并使用复制项目复制文件。

 $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 } 

试试这个(在循环中):

 $from = "C:\Users\" + $file[$i+1] + "\" + $file[$i] $to = "C:\Users\AJ\Desktop\gdocs\" Copy-Item $from $to 

$from$toCopy-Item cmdlet的参数。 它们绑定到参数-Path-Destinattion 。 你可以通过这个代码来检查:

 Trace-Command -pshost -name parameterbinding { Copy-Item $from $to }