Войти

Показать полную графическую версию : [решено] агрументы и параметры в сценариях PoSh


Shkutu
02-10-2013, 17:26
Здравствуйте!
Есть скрипт

...
$webclient = New-Object System.Net.WebClient
$webclient.DownloadFile($url,$file)
$shell = new-object -com shell.application
$zip = $shell.NameSpace($file)
foreach($item in $zip.items())
{
$shell.Namespace($args[0]).copyhere($item)
}

New-Item -path $args[0] -name "testing" -type directory -Force | Out-Null
Copy-Item $args[1]\* $args[0]\testing\ -Force
С заливокой файла и созданием папки проблем нет, на копировании вылезает
Copy-Item : Не удается найти позиционный параметр, принимающий аргумент "d:\7_
".
D:\5_2\base\test.ps1:23 знак:10
+ Copy-Item <<<< $args[1]\* $args[0]\testing\ -Force
+ CategoryInfo : InvalidArgument: (:) [Copy-Item], ParameterBindi
ngException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.CopyItemCommand
Использование $Param() вместо $args не помогло. Ошибку не выдает, но ни копирования, ни даже создания папки не происходит.
Может кто-нибудь помочь?

Iska
02-10-2013, 18:10
Shkutu, конкретику приведите: как, с какими аргументами исполнялся скрипт; что в «$url», что в «$file».

Shkutu
02-10-2013, 19:34
Iska, в $url - ссылка на файл, $file- полное имя конечного файла.
скрипт вызывался как
d:\test.ps1 d:\7_5 d:\testing
Вообще говоря, проблема решилась, вроде как. Помогло присвоить значения аргументов отдельным переменным

sunnykey
03-10-2013, 13:45
С заливокой файла и созданием папки проблем нет, на копировании вылезает
Copy-Item : Не удается найти позиционный параметр, принимающий аргумент "d:\7_
".
D:\5_2\base\test.ps1:23 знак:10
+ Copy-Item <<<< $args[1]\* $args[0]\testing\ -Force
+ CategoryInfo : InvalidArgument: ( [Copy-Item], ParameterBindi
ngException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.CopyItemCommand
Использование $Param() вместо $args не помогло. Ошибку не выдает, но ни копирования, ни даже создания папки не происходит.
Может кто-нибудь помочь? »
Когда добавляешь какой-то текст к переменной, нужно в кавычки всё запихивать
Copy-Item "$args[1]\*" "$args[0]\testing\" -Force




© OSzone.net 2001-2012