• Klo 11 alkaen tietokanta-ajoon liittyvä ongelma, joka aiheuttaa palvelinvirhettä viestejä lähettäessä. Viestien kirjoittaminen pois käytöstä väliaikaisesti. Pyrimme saamaan ongelman korjattua mahdollisimman pian. Pahoittelut häiriöistä.

Powershell-scriptaus

Kaiser Soze

Johtaja
Liittynyt
18.10.2016
Viestejä
4 963
Olisiko kellään taitoa antaa loitsua jolla pystyisin muuttamaan monen tiedoston nimen kerralla? Jujuna olisi että muutoksen pitäisi koskea vain tiedostoja joiden nimen pituus on enemmän kuin n... Rename-itemillä tuo varmaan hoituu.
 
Liittynyt
16.10.2016
Viestejä
543
:comp: :psmoke:
Koodi:
$i=0;$n=10;gci -File|% {if($_.name.Length -gt $n){try{$item=$_;rni $_ "$($_.name.Substring(0,($n-$_.extension.length)))$($_.extension)" -ErrorAction stop}catch{$i++;rni $item "$($item.name.Substring(0,($n-$("$i").length-$item.extension.length)))$i$($item.extension)"}}}
 
Viimeksi muokattu:
Liittynyt
16.10.2016
Viestejä
543
No toi nyt oli pieni vitsi. Toimii, mutta kyllähän tuo kannattaa one linerista muuttaa luettavaan muotoon. Toteutus myöskin riippuu siitä miten tiedostot halutaan uudelleen nimetä. Tämä on hyvä harjoittelukeissi.
 
Liittynyt
16.10.2016
Viestejä
166
Nyt täytyy sanoa, että alkoi PowerShell-skriptaus kiinnostamaan tuon ©©©:n väsäämän "poista viestihistoriani" -skriptin myötä. Pythonin (hatarat) alkeet ovat hallussa ja joitain opiskelujuttujen laskuja olen automatisoinut CSV-filuun ja sitä kautta exceliin. Mistä näillä pohjilla kannattaisi aloittaa? Pythonin kanssa huomasin, että asioita ei opi muuten kuin itse kokeilemalla. Löytyykö netin syövereistä oppaita harjoitustehtävineen (ja mielellään suomeksi näin alkuun)? :comp:
 
Liittynyt
16.10.2016
Viestejä
543
Mistä näillä pohjilla kannattaisi aloittaa? Pythonin kanssa huomasin, että asioita ei opi muuten kuin itse kokeilemalla. Löytyykö netin syövereistä oppaita harjoitustehtävineen (ja mielellään suomeksi näin alkuun)? :comp:
Varmaan paras lähde on Youtube. Siellä on useita hyviä tutoriaaleja. Parhaiten kyllä oppii vain tekemällä. Tämä keskustelu sopii varmaan paremmin tuohon toiseen Powershell-ketjuun. Tein sinne muutamia esimerkkejä alkeista:
https://bbs.io-tech.fi/threads/powershell.614/#post-26873
 
Liittynyt
17.10.2016
Viestejä
3 306
Onko kellään helppoa jippoa, kuinka powershellin scriptillä luotuun pikakuvakkeeseen saisi lisättyä täpän "Run as Administrator"-kohtaan, ettei tarvi manuaalisesti käydä laittamassa. Vai meneekö turhaksi säätämiseksi?

$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\KUVAKE.lnk")
$Shortcut.TargetPath = "$Home\network\KUVAKE.bat"
$Shortcut.WorkingDirectory = "$Home\network"
$Shortcut.IconLocation = "$Home\network\KUVAKE.ico"
$Shortcut.Save()

Itselleni vastaten:

$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$Home\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\KUVAKE.lnk")
$Shortcut.TargetPath = "$Home\network\KUVAKE.bat"
$Shortcut.WorkingDirectory = "$Home\network"
$Shortcut.IconLocation = "$Home\network\KUVAKE.ico"
$Shortcut.Save()
$bytes = [System.IO.File]::ReadAllBytes("$Home\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\KUVAKE.lnk")
$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON
[System.IO.File]::WriteAllBytes("$Home\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\KUVAKE.lnk", $bytes)
 
Viimeksi muokattu:
Liittynyt
17.10.2016
Viestejä
86
PowerShell on kyl mahtava. Mitä enemmän sitä oppii, sitä enemmän siitä tykkää!
 
Liittynyt
17.10.2016
Viestejä
3 306
PowerShell on kyl mahtava. Mitä enemmän sitä oppii, sitä enemmän siitä tykkää!
Kyllä. Vielä kun viitsisi opetella itsensä pois normibatcheistä, niin pääsisi paremmin vauhtiin. Mutta kun...laiska on laiska ja sillisalaatilla edetään. :)
 
Liittynyt
16.10.2016
Viestejä
543
Tein yleiskäyttöisen Powershell-funktion joka kysyy käyttäjältä kokonaislukua. Koodi on spoiler-tageissa. Ajattelin, että tässä on aika hyvä harjoitus jos haluaa parannella omia PS-taitojaan. Koita siis tehdä tehtävän mukainen funktio ilman koodin katsomista. :)
  • Tee funktio joka kysyy käyttäjältä positiivista kokonaislukua jonka min ja max arvot voidaan antaa argumentteina funktiolle
  • Esimerkki funktion kutsusta ja parametreista: Get-InputInteger -Minimum 1 -Maximum 100
  • Funktio kysyy käyttäjältä syötettä (käytetään komentoa Read-Host) niin kauan kunnes annettu arvo on luku väliltä 1 - 100
  • Funktio ilmoittaa jos syöte on annettu väärässä muodossa esim. -5, 1.6, asdasd, !!!, tai annettu luku on suurempi kuin 32 bittinen kokonaisluku voi olla

Koodi:
function Get-InputInteger
{
    param([int]$Minimum=0, [int]$Maximum=[int]::MaxValue)

    do
    {
        $luku = Read-Host "Anna positiivinen kokonaisluku $Minimum-$Maximum"

        if($luku -match "^\d+$")
        {
            try
            {
                $luku = [int]$luku
            }
            catch
            {
                Write-Warning "Syötetty luku on liian suuri, syötä pienempi luku"
            }
        }
        else
        {
            Write-Warning "Syöte '$luku' ei näytä positiiviselta kokonaisluvulta, yritä uudestaan"
        }

    }until($luku -is [int] -and $luku -ge $Minimum -and $luku -le $Maximum)

    Write-Host "Annoit luvun: $luku"
    return $luku
}

Get-InputInteger -Minimum 1 -Maximum 10
 
Liittynyt
22.10.2016
Viestejä
227
Itse olen skriptaillut VBS:llä vuosikaudet mitä erilaisempia asioita ja nyt muutama vuosi sitten siirtynyt PowerShelliin ja täytyy sanoa, että PowerShell really Rocks!
 
Toggle Sidebar

Uusimmat viestit

Statistiikka

Viestiketjut
239 584
Viestejä
4 191 454
Jäsenet
70 773
Uusin jäsen
PaulusKaita

Hinta.fi

Ylös Bottom