edhouse-CookieGdpr-Policy-s
7643043
0
/cz/gdpr/
865650B6B

Zpět na Blog

NávodySQA

Stahování složek pomocí PowerShellu

Tech_blog

Mnoho úkonů, které běžně provádíme manuálně, lze automatizovat. Ušetříme tím čas, ale můžeme také snížit pravděpodobnost chyb.

Jedním z takových úkolů může být například stahování nejnovějšího buildu aplikace, kterou testujeme. V tomto článku se podíváme na to, jak lze snadno (polo)automaticky stahovat složky (nejen) ze sdíleného disku pomocí PowerShellu

Představme si situaci: Máme síťový disk nebo sdílené úložiště, na který se automaticky ukládají nejnovější vývojové verze aplikace. Pokud tedy chceme tuto verzi testovat, musíme otevřít Průzkumníka a najit požadovanou složku. V ní potom zjistit, která verze je nejnovější, a tu stáhnout k sobě na disk. Je to jednoduchá operace, ale nějaký čas zabere a pokud ji musíme opakovat několikrát denně, efektivita prudce klesá. 

K naprogramování skriptu nám bude stačit základní znalost PowerShellu

Pro získání seznamu složek použijeme Get-ChildItem

$directories = Get-ChildItem -Path $sourcePath -Directory | Where-Object { $_.Name -like $folderMask }

Složky si poté seřadíme pomocí Sort-Object od nejnovější: 

$directories | Sort-Object -Property LastWriteTime -Descending | Select-Object -Last 10 

Vytvoříme si seznam složek, pomocí kterého později vytvoříme “menu” a do kterého doplníme informaci o datu a času vytvoření složky a informaci, jestli už danou složku náhodou nemáme staženou: 

$downloadList += [pscustomobject]@{ 
    Index = $downloadIndex; 
    DateTime = $_.LastWriteTime.ToString("yyyy-MM-dd HH:mm"); 
    Name = $_.Name; 
    FullName = $_.FullName; 
    IsDownloaded = $isDownloaded; 
}

Menu vytvoříme zobrazením seznamu ve formátu tabulky pomocí Format-Table a dotazem pomocí Read-Host na zadání čísla složky, která se má stáhnout: 

$downloadList | Format-Table -Property Index, DateTime, Name, IsDownloaded -AutoSize 
$PROMPT = Read-Host "Select a number of build to download" 

Celý skript najdete na našem GitHubu: folder_downloader.ps1

Tento jednoduchý skript je spíše ukázkou toho, že i jednoduché operace se vyplatí automatizovat a jejich vytvoření nemusí být nijak složité. Já osobně podobný skript používám opravdu několikrát denně (a spouštím samozřejmě pomocí Sekubu). Po stažení mohu také rovnou spustit instalátor aplikace.  

Sdílet článek

Autor

Jan Zatloukal

Jan ZatloukalTester a vývojář se zálibou v automatizaci a zlepšování procesu vývoje. Aktuálně pracuji na projektu automatizace elektronových mikroskopů v Pythonu.