ฉันกำลังพยายามคำนวณทางคณิตศาสตร์สำหรับรายการแบบไดนามิกของผู้ใช้ที่ฉันจะใช้เพื่อเรียกใช้การค้นหาและนับผลลัพธ์บางอย่างโดยไม่ระบุชื่อ ตัวอย่างเช่น:
$users = Get-ADUser -filter blah
[int]$usercount = $users.count
for ($z=1; $z -le $usercount; $z++) {
**** create variable here - $user$z ***
}
เมื่อสร้างตัวแปรฉันต้องการให้มีลูปเพิ่มเติมโดยที่ฉันจะเพิ่มจำนวนลงในหมายเลขที่เก็บไว้ในตัวแปรแล้ว
และไม่ฉันไม่สามารถใช้ตัวแปร $ user ได้เพราะจะต้องคงอยู่หลังจากลูป foreach นี้สิ้นสุด
ดังนั้นคำถามคือฉันจะสร้างตัวแปรที่เพิ่มขึ้นโดยไม่ทราบจำนวน จำกัด ของวัตถุที่เป็นไปได้อย่างไร
--- แก้ไข ---
การเพิ่มตัวอย่างง่ายๆของสิ่งที่ฉันกำลังพูดถึง ...
หลังจากข้อเสนอแนะฉันกำลังดูแฮชเทเบิล แต่ก็ยังหาวิธีอ้างอิงไม่ได้
ลองนึกภาพเกมลูกเต๋าระหว่างรายชื่อผู้คนที่มีหลายรอบ ฉันต้องการเพิ่มขึ้นต่อรอบทั้งหมดของพวกเขา ปัญหาของฉันคือบรรทัดสุดท้ายที่ฉันพยายามอัพเดตผลรวมด้วยการหมุน ฉันจะอ้างอิงค่า hashtable ได้อย่างไร
[CmdletBinding()]
param (
[parameter(Mandatory=$false)][ValidateRange(1, [int32]::MaxValue)][int]$rounds = "15",
[parameter(Mandatory=$false)][ValidateRange(1, [int32]::MaxValue)][int]$players = "2"
)
$ptotal = [ordered]@{}
for ($w=1; $w -le $players; $w++) {
$ptotal.add("player$w", 0)
}
for ($z=1; $z -le $rounds; $z++) {
Write-Host Round $z
for ($y=1; $y -le $players; $y++) {
$roll = (1..6 | get-random) + (1..6 | get-random)
$ptotal.player$y = $ptotal.player$y + $roll
}
}
New-Variable
cmdlet เช่น for
วนรอบไม่ได้แนะนำขอบเขตใหม่จะมีให้ในลูปต่อไปนี้ในขอบเขตปัจจุบันตามค่าเริ่มต้น คุณสามารถระบุขอบเขตที่ต้องการเป็นพารามิเตอร์ได้ New-Variable
cmdlet เช่นกัน แต่ถ้าคุณไม่สามารถให้เหตุผลที่ดีสำหรับการใช้ตัวแปรที่มีชื่อแบบไดนามิกคุณควรพิจารณาใช้อาร์เรย์แทน