02. maj 2018 - 14:43Der er
3 kommentarer og 1 løsning
POWERSHELL: Undlade string med bestemt indhold
Hvordan filtrer jeg strings med bestemt indhold? Jeg har denne, men kan ikke lige få det til at virke. for ($i=0;$i -le $aDirectReports.Count-1; $i++) { if ($aDirectReports[$i] -notmatch "Admin" -or $aDirectReports[$i] -notmatch "Graveyard" -or $aDirectReports[$i] -notmatch "Resources" -or $aDirectReports[$i] -notmatch "Leavers") { $aDirectReports[$i] } }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skal bruge -and i stedet for -or. De strings du vil filtrere må ikke indeholde nogen af de fire ord, derfor skal alle fire -notmatch statements være opfyldt, før ordet udskrives.
If-sætningen evaluerer heller ikke på om alle fire ord findes i inputtet samtidigt hvis du bruger -and, den evaluerer hvert ord for sig. Så dit input udskrives kun, hvis dit input IKKE indeholder nogle af ordene.
Du kunne evt. også drage nytte af at -notmatch kan bruges med regular expressions. Jeg syntes det øger læsbarheden: $Filter = @("Admin", "Graveyard", "Resources", "Leavers") -join "|" foreach($Item in $aDirectReports) { if($Item -notmatch $Filter) { $Item } }
Pisse smart. Den havde jeg ikke lige tænkt på. Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.