Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] агрументы и параметры в сценариях PoSh (http://forum.oszone.net/showthread.php?t=269191)

Shkutu 02-10-2013 17:26 2227502

агрументы и параметры в сценариях PoSh
 
Здравствуйте!
Есть скрипт
Код:

...
$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 2227521

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

Shkutu 02-10-2013 19:34 2227556

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

sunnykey 03-10-2013 13:45 2227875

Цитата:

Цитата Shkutu
С заливокой файла и созданием папки проблем нет, на копировании вылезает
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


Время: 15:49.

Время: 15:49.
© OSzone.net 2001-