2015-08-14 3 views
0

Я пытаюсь создать сценарий PowerShell, который будет перемещать XML-файлы определенного возраста на сетевой диск, который будет архивироваться. Сценарий до сих пор:Связывание параметров

$qaprocessedpath = "Y:\SFTPSHARE\SFTPYMSQ\YS42C1Processed" 
$qabackup = “\\servername\S$\xmlbackup\qa" 

$max_age_qa = "-1" 
$curr_date = Get-Date 
$del_date_q = $curr_date.AddDays($max_age_qa) 

Get-ChildItem -include *.xml $qaprocessedpath | Where-Object {$_.LastWriteTime -lt $del_date_q } | Foreach-Object {Copy-Item -Path $_.FullName -Destination $qabackup} {Remove-Item $_.FullName} 

Этот код приводит к следующей ошибке:

Copy-Item : Cannot bind argument to parameter 'Path' because it is null. 
At Y:\SFTPSHARE\SFTPYMSP\XMLBackup.ps1:52 char:132 
+ Get-ChildItem -include *.xml $qaprocessedpath | Where-Object { $_.LastWriteTime -lt $del_date_q } | Foreach-Object {Copy-Item -Path <<<< $_.FullName -Destination $qabackup} {Remove-Item $_.FullName} 
    + CategoryInfo   : InvalidData: (:) [Copy-Item], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand 

Не уверен, где проблема. Я новичок скриптер, поэтому я уверен, что это что-то очевидно ...

ответ

0

В этой строке

Get-ChildItem -include *.xml $qaprocessedpath | Where-Object {$_.LastWriteTime -lt $del_date_q } | Foreach-Object {Copy-Item -Path $_.FullName -Destination $qabackup} {Remove-Item $_.FullName} 

Почему у вас есть два scriptblocks следующих за Foreach-Object?

Попробуйте разделить copy-item и remove-item с точкой с запятой (в том же скриптблоке), если вы хотите, чтобы они оба запускались. Как вы написали, два скриптовых блока привязаны к параметру -Process (как обычно) и параметру -Begin.

+0

Майк, спасибо за это. Я объединил эти два блока сценариев и разделил каждую строку точкой с запятой. Это очистило ошибку, и скрипт, похоже, выполнит, но когда я проверяю исходные и целевые каталоги, я считаю, что файлы не переместились. На этот раз на скрипте нет ошибки, это просто ничего не движет. – user3361305

Смежные вопросы