Ez egy olyan kérdés, amelyet meglehetősen gyakran kapok, ezért gondoltam, hogy cikket írok róla. Ahogy a cím azt jelenti, megmutatom, hogyan lehet hozzáadni vagy eltávolítani elemeket egy PowerShell tömb, ha már létre.
PowerShell tömbök
kezdjük egy tömb meghatározásával, mivel a PowerShell dokumentációból származik:
egy tömb olyan adatstruktúra, amelyet elemek gyűjteményének tárolására terveztek., Az elemek lehetnek azonos vagy különböző típusok.A Windows PowerShell 3.0-tól kezdve a nulla vagy egy objektum gyűjteménye rendelkezik a tömbök bizonyos tulajdonságaival.
egy tömb létrehozása a PowerShellben nagyon egyszerű, és valószínűleg már megtetted, amikor például a felhasználók listáját az Active Directory
$adUsers = Get-AdUser -Filter '*' -Server $adDomainController
a fentiek a használt szűrőnek megfelelő összes felhasználót tartalmazó hirdetési objektumokat tartalmaznak.,
persze lehet inicializálni egy üres tömb a következő szintaxis
$myArray = @()# Specify object type$myArray = @()
A fenti inicializálni egy üres tömb, hogy tudjuk, például, töltse ki a HIRDETÉST lekérdezés, illetve hozzátéve, hogy a statikus elemek, mint ez
$myArray = (1,2,3,4,5)
A fenti elemek hozzáadása 1 5 myArray tárgy instantiating egy új objektum hossza 5
PowerShell Hozzáadása Elemet, hogy egy Tömb
Van, hogyan hozhat létre, illetve rendelni az értékeket, hogy egy tömb de mi van, ha azt szeretné, hogy adjunk egy hatodik elem, hogy myArray?, Ha a következő
$myArray.Add(6)
a következő kivétellel sikertelen lesz
a fenti kivétel a PowerShell tömb egy fix méretű gyűjtemény, és a hiba csak azt mondja, hogy nem bővíthető.,
az Egyik leggyakoribb megoldás az, hogy használja a += operátor, mint például
$myArray += 6# Print array's length$myArray.length6
Ha a += operátor, mi történik a motorháztető alatt
- PowerShell létrehoz egy új tömb azonos elemek, mint a régi, plusz az új elem
- PowerShell felülírja a meglévő tömb az új tartalom
ez az átlátszó, hogy a felhasználó így nem látok különbséget.,
Új Elem, hogy a Tömb – Be ArrayList
Ha el akarod kerülni az összes másolása/mozgatása adatokat lehet létrehozni myArray, mint egy ArrayList, amely dinamikus, lehetővé teszi, hogy adjunk távolítsa el az elemeket a fly
Hasonlóképpen akkor távolítsa el az elemeket egy ArrayList, mint ez
# Will corresponding item by index$myArrayList.RemoveAt(1)
Megjegyzés: Távolítsa el a módszer elfogadja elem értéke akkor 1, a fenti példa utal, hogy az érték nem az elem indexe.,
Öntött, hogy elnyomja Hozzá módszer nyomtatási új tömb hossza
Létre Tömb, Lista az alternatív módja
A fenti példa az Új-Objektum módszer a standard input new ArrayList de ez viszonylag drága, tekintve a számítási erőforrások, így a fenti át lehet írni, mint a
$myArray = @()
amellett, hogy rövidebb az előnye, hogy elkerüljük a negatív teljesítmény hit, Új-Objektumot, majd optimalizálni a kódot mindig egy jó ötlet, különösen, ha foglalkozó nagyobb szkripteket.,34f072bc0″>
Záró Megjegyzések
Ha a kódot írni, annak ellenére, hogy nem szükséges PowerShell, igyekszem mindig kijelentem, hogy az objektum típusa, mint hasznos tudni, hogy egy adott pillanatban, Tulajdonságok, Módszerek támogatja az objektum tehát nem mindig írok
$myString = 'Some Text'
Helyett
$myString = 'Some Text'
Ez nem szükséges PowerShell találom, de segít a kód olvashatóságát, illetve egyszerűsíti dolgozik egy objektumot nyilvánított 800/900 vonalak fel a kódot, anélkül, hogy ugorjon vissza a változó nyilatkozat.,
Leave a Reply