Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  PowerShell RegEx märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
sirius4k
HV veteran
sirius4k

liitunud: 25.09.2005




sõnum 07.05.2015 17:25:25 PowerShell RegEx vasta tsitaadiga

Tervist

Üritan siin regexiga, PowerShellis, stringi algusest ja lõpust eemaldada ebavajalikke sümboleid.

Seni on see õnnestunud nii:
$kollane = "||| mingi tekst ???"
$eest = $kollane -replace '|||', ''
$takka = $eest -replace '???', ''
Kindlasti saab seda kuidagi ka ühe reaga teha icon_question.gif
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 55
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 07.05.2015 22:54:41 Re: PowerShell RegEx vasta tsitaadiga

sirius4k kirjutas:
Tervist

Üritan siin regexiga, PowerShellis, stringi algusest ja lõpust eemaldada ebavajalikke sümboleid.

Seni on see õnnestunud nii:
$kollane = "||| mingi tekst ???"
$eest = $kollane -replace '|||', ''
$takka = $eest -replace '???', ''
Kindlasti saab seda kuidagi ka ühe reaga teha icon_question.gif
Trim peaks sellejaoks sobilik olema:

$kollane = "||| mingi tekst ???"
$valjund = $kollane.Trim("|||","???"," ")


http://blogs.technet.com/b/heyscriptingguy/archive/2014/07/18/trim-your-strings-with-powershell.aspx

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
sirius4k
HV veteran
sirius4k

liitunud: 25.09.2005




sõnum 08.05.2015 08:53:21 vasta tsitaadiga

Tänud.

Kuid näen, et oleks pidanud täpsemalt kirja panema asja.
Nimelt ei ole lõigatav objekt string, vaid ongi PS objekt. Ja sellel pole trim meetodit.

icon_smile.gif

Panen kokku klopsitud asja ka siia
#Get password
$password = Get-Content "C:\Users\kasutaja\Documents\password.txt" | ConvertTo-SecureString
#Set credentials
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ftpkasutaja, $password

#Create new FTP session
Set-FTPConnection -Credentials $creds -Server ftp.server.ee -UsePassive -Session xSessioon | Out-Null

#Get last item in session
$FTPLastItem = Get-FTPChildItem -Session xSessioon / | Select-Object Name -Last 1

#Download last item in session, overwrite existing
Get-FTPChildItem -Session xSessioon -Path / | Select-Object -Last 1 | Get-FTPItem -Session xSessioon -LocalPath 'C:\TEMP\' -Overwrite

#Remove crap from the front
$CutFront = $FTPLastItem -replace '@{Name=', ''
#Remove crap at the end
$CutBack = $CutFront -replace "}$", ""

#Unzip last update to parandused folder
Get-FileFromZip -ZipFile "C:\TEMP\$CutBack" -Destination "C:\TEMP\"
Ma saan objekti sellisena: @{Name=zipfile_kuupäev.zip}
Ma tahan, et jääks zipfile_kuupäev.zip, et saaks automaagiliselt järgmise käsuga selle kohe lahti pakkida.


viimati muutis sirius4k 08.05.2015 11:09:00, muudetud 2 korda
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 55
tagasi üles
vaata kasutaja infot saada privaatsõnum
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 08.05.2015 09:35:47 vasta tsitaadiga

sirius4k kirjutas:
Nimelt ei ole lõigatav objekt string, vaid ongi PS objekt. Ja sellel pole trim meetodit.

Stringiks cast'ida ei õnnestu?
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
sirius4k
HV veteran
sirius4k

liitunud: 25.09.2005




sõnum 08.05.2015 11:01:20 vasta tsitaadiga

warwas kirjutas:
sirius4k kirjutas:
Nimelt ei ole lõigatav objekt string, vaid ongi PS objekt. Ja sellel pole trim meetodit.

Stringiks cast'ida ei õnnestu?
Tänud, selle peale enne ei tulnudki.

Lisasin nüüd [string] objekti ette, mida kätte üritan saada
[String]$FTPLastItem = Get-FTPChildItem -Session xSessioon / | Select-Object Name -Last 1

Nüüd aga kui ma üritan teha nii, nagu Renka soovitas:
$FTPLastItem.Trim("@{Name=", "}", " ")

Siis ma saan veateateks
Cannot convert argument "trimChars", with value: "@{Name=", for "Trim" to type "System.Char": "Cannot convert value "@{Name=" to type "System.Char". Error: "String must be exactly one character long.""
Nõuab et sisestaksin ainult ühe tähe
Samas, kui Trim'is kasutan ainult ühte sisendit, siis töötab sellega, mida ette annan. Praegu tundub, et igat pidi tuleb rohkem, kui üks rida.

Lahendus
Tänud teile mõlemile õigele teele suunamisest icon_smile.gif
Mul tuli meelde, et PSis töötab chainimine
    Tuli objekt stringiks teha
    Ja trim-iga eemaldasin mittevajalikud asjad algusest ja lõpust chainides trimstart-i ja trimend-i
$output = $FTPLastItem.TrimStart("@{Name=").TrimEnd("}")
Kommentaarid: 56 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 55
tagasi üles
vaata kasutaja infot saada privaatsõnum
kr15tj4n
Kaevur
kr15tj4n

liitunud: 29.01.2011




sõnum 08.08.2015 16:52:24 vasta tsitaadiga

Alati pole vast tark regular expressione kasutada, vaid lihtsalt tavalist stringi funktsioone. icon_wink.gif
_________________
Kristjan Robam
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  PowerShell RegEx
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.