0

我需要检索 pdf 文件并将此 pdf 文件从源复制到目标。pdf 名称在 txt 文件 listspec 中逐行显示:

100
200 
204 
79002 
XS002

我连接.pdf扩展名

但是 pdf 文件是 001 00 .pdf、002 00 .pdf、204 00 .pdf、79002.pdf、XS002.pdf。我需要在最多 5 个位置上使用 0 的 pdf 文件名 Padleft。

我使用这个命令:

Get-Content $listspec | Foreach-Object{copy-item -Path $source\$_".pdf".PadLeft(5,'0'), -destination $destination -ErrorAction SilentlyContinue -ErrorVariable +errors} 

我收到此错误:

*Copy-Item : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter ' method is not supported.*

谢谢你的帮助。

4

2 回答 2

0

这适用于我将指定的文件复制到文件files.txt夹中dest

gc .\files.txt | % { Copy-Item ($_.padRight(5,"0")+".pdf") -Destination "dest\ " }

在将文件名传递给Copy-Itemcmdlet之前,我必须包装文件名以对其进行评估

这个:($_.padRight(5,"0")+".pdf"

于 2015-04-30T14:36:42.903 回答
0

这是一个简单的错字问题。删除和,之间的逗号。-path-destination

而不是这个:

copy-item -Path $source\$_".pdf".PadLeft(5,'0'),-destination $destination

像这样使用语法,

copy-item -Path $source\$_".pdf".PadLeft(5,'0') -destination $destination

于 2015-04-30T05:56:01.757 回答