Jak zrobić pętlę iterującą od 1 do 10 dla $Page?

0

Witam wszystkich
Chodzi mi o to żeby $Page=1 zmieniał się np. od 1 do 10 w pętli. Teraz wygląda to tak że uruchamiam ten skrypt, jak się skończy to wpisuję ręcznie $Page=2 i znowu puszczam.

Nie znam się na Powershell, szukałem w internecie jakichś pętli ale nie wiem nawet gdzie i jak je wstawić.
Dziękuję z góry za pomoc.

function Download-Wallpaper
{
    param
    (
        [string]
        [Parameter(Mandatory)]
        $Folder,
 
        [Parameter(ValueFromPipeline)]
        [Int]
        $Page=1
    )
    
    begin
    {
        $url = "http://wallpaperswide.com/page/$Page"
        $targetExists = Test-Path -Path $Folder
        if (!$targetExists) { $null = New-Item -Path $Folder -ItemType Directory }
    }
    process
    {
        $web = Invoke-WebRequest -Uri $url -UseBasicParsing
 
        $web.Images.src | 
        ForEach-Object {
    
            $filename = $_.Split('/')[-1].Replace('t1.jpg','wallpaper-3840x2160.jpg')
            $source = "http://wallpaperswide.com/download/$filename"
    
            $TargetPath = Join-Path -Path $folder -ChildPath $filename
 
            Invoke-WebRequest -Uri $source -OutFile $TargetPath
        }
    }
    end
    {
        explorer $Folder
    }
}

Download-Wallpaper -Folder d:\temp\wallpaper
0

Wywołanie funkcji umieść w pętli, a następnie przekazuj wartość z licznika pętli do funkcji (tak samo jak przekazujesz folder).

Przykłady pętli masz tu:
https://en.wikiversity.org/wiki/PowerShell/Loops

0

Po dłuższym czasie poddałem się, dalej potrzebna pomoc.
Udało mi się uruchomić funkcję tyle razy ile ustawiłem, ale nie mam pojęcia jak zmieniać parametr $Page, żeby się dodawał, bo teraz działa to 5 razy ale za każdym razem $Page wynosi 1

for($i = 1; $i -lt 5; $i++)
{
function Download-Wallpaper
{
    param
    (
        [string]
        [Parameter(Mandatory)]
        $Folder,
 
        [Parameter(ValueFromPipeline)]
        [Int]
        $Page=1
    )
 
    begin
    {
        $url = "http://wallpaperswide.com/page/$Page"
        $targetExists = Test-Path -Path $Folder
        if (!$targetExists) { $null = New-Item -Path $Folder -ItemType Directory }
    }
    process
    {
        $web = Invoke-WebRequest -Uri $url -UseBasicParsing
 
        $web.Images.src | 
        ForEach-Object {
 
            $filename = $_.Split('/')[-1].Replace('t1.jpg','1920x1080.jpg')
            $source = "http://wallpaperswide.com/download/$filename"
 
            $TargetPath = Join-Path -Path $folder -ChildPath $filename
 
            Invoke-WebRequest -Uri $source -OutFile $TargetPath
        }
    }
    end
    {
        explorer $Folder
    }
}Download-Wallpaper -Page = $i+ ??????????????????????????????
}

Download-Wallpaper -Folder d:\temp\wallpaper
0

wow ! super porady ! a ja się z tym tylę męczę

0
mol09 napisał(a):

a ja się z tym tylę męczę

to jest całkowicie normalne, sam na początku miałem problemy, odkładałem nawet na kilka miesięcy, wracając do projektów po czasie, za którymś razem po prostu zaskoczyło i ogarnąłem temat, czasami nawet się dziwiąc jak proste było rozwiązanie ;)

0

Mam to! :)
Na początku nie bardzo wiedziałem co robić, ale później metodą prób i błędów w końcu się udało

$i = 1
do
{
    function Download-Wallpaper
{
    param
    (
        [string]
        [Parameter(Mandatory)]
        $Folder,
 
        [Parameter(ValueFromPipeline)]
        [Int]
        $Page=$i
    )
 
    begin
    {
        $url = "http://wallpaperswide.com/page/$Page"
        $targetExists = Test-Path -Path $Folder
        if (!$targetExists) { $null = New-Item -Path $Folder -ItemType Directory }
    }
    process
    {
        $web = Invoke-WebRequest -Uri $url -UseBasicParsing
 
        $web.Images.src | 
        ForEach-Object {
 
            $filename = $_.Split('/')[-1].Replace('t1.jpg','1920x1080.jpg')
            $source = "http://wallpaperswide.com/download/$filename"
 
            $TargetPath = Join-Path -Path $folder -ChildPath $filename
 
            Invoke-WebRequest -Uri $source -OutFile $TargetPath
        }
    }
    end
    {
        
    }
}
 Download-Wallpaper -Folder e:\wallpaper2
 $i++
}until($i -ge 10)

1 użytkowników online, w tym zalogowanych: 0, gości: 1