2015-04-30 60 views
0

我需要檢索pdf文件並將此pdf文件從源文件複製到目標文件。 PDF格式的名稱是TXT文件listspec一個數由行:Copy-Item and PadLeft

100 
200 
204 
79002 
XS002 

我串聯了.pdf擴展

但PDF文件001 .PDF,002 .PDF,204 .pdf,79002.pdf,XS002.pdf。我需要Padleft 0個PDF文件名稱最多5個位置。

我使用這個命令:

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.* 

感謝您的幫助。

+0

圍繞該串接的PDF延伸到所述代碼循環變量帶括號'('&')' –

回答

0

這是一個簡單的拼寫錯誤問題。刪除-path-destination之間的逗號,

取而代之的是:

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

使用的語法像這樣,

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

+0

我在-path和-destination之間刪除了逗號。我收到此錯誤_Copy-Item:無法找到接受參數'System.Object []'的位置參數。 在C:\ temp \ spec \ CopySpec.ps1:30 char:49 + Get-Content $ listspec | Foreach-Object {copy-item <<<< -Path $ source \ $ _「。pdf」.PadLeft(5,'0') - destination $ destinatio n -ErrorAction SilentlyContinue -ErrorVariable + errors} + CategoryInfo:InvalidArgument :(:) [Copy-Item],ParameterBindingException + FullyQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell.Commands.CopyItemCommand_ – user3914656

+0

似乎foreach var不是一個字符串,讓我測試 –

0

這工作對我來說,files.txt指定的文件複製到該文件夾​​dest

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

我不得不包的文件名具有現有它進行評估,以將它傳遞給Copy-Item小命令

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

+0

我使用'gc'別名'Get-內容'cmdlet和'''ForEach-Object'的'%' –

+0

好的,文森特它工作。謝謝。 'Get-Content $ listspec | Foreach-Object {copy-item -Path($ source + $ _。PadLeft(5,'0')+'。pdf') - destination $ destination -ErrorAction SilentlyContinue -ErrorVariable + errors} ' – user3914656