внятного найти с лету не могу:
function Move-Profile {
param (
[Parameter(Mandatory=$True,ValuefromPipeline=$True)]
[string[]]$UserName,
[Parameter(Mandatory)]
[ValidateSet("3","4")]
[string]$DataNum
)
foreach ($name in (gci \\domain.ru\profile\UserData, \\domain.ru\profile\UserData2))
{
if ($name.Name -eq $UserName)
{
$target="\\domain.ru\profile\UserData$DataNum\$UserName"
$ans=Read-Host Переместить папку $name.FullName в "$target"? Y\N
if ($ans -eq "y")
{
robocopy $name.FullName $target /S /COPYALL /r:1 /w:1 /Move
}
else
{
Continue
}
}
}
}
Get-Content c:\scripts\1.txt | Move-Profile
И оно у меня только последнего цепляет из списка, я думал может надо тогда сделать типа:
foreach ($users in $UserName) {
но в доках не говорят что надо описывать такую работу скрипта, оно само понимает что надо по одному подставлять)
function Move-Profile { param ( [Parameter(Mandatory=$True,ValuefromPipeline=$True)] [string[]]$UserName, [Parameter(Mandatory)] [ValidateSet("3","4")] [string]$DataNum ) foreach ($name in (gci \\domain.ru\profile\UserData, \\domain.ru\profile\UserData2)) { if ($name.Name -eq $UserName) { $target="\\domain.ru\profile\UserData$DataNum\$UserName" $ans=Read-Host Переместить папку $name.FullName в "$target"? Y\N if ($ans -eq "y") { robocopy $name.FullName $target /S /COPYALL /r:1 /w:1 /Move } else { Continue } } }}
мне процесс с какого момента стартовать:? Я на всякий пробовал его вставить уже в сам прям "Процесс", не взлетело, поэтому я и расстроился: if ($ans -eq "y") Process{ { robocopy $name.FullName $target /S /COPYALL /r:1 /w:1 /Move } }
внутри функции у тебя есть 3 блока - бегин, процес, енд внутри каждого ты можешь вкорячить логику
Обсуждают сегодня