麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PowerShell > 正文

PowerShell 數(shù)組的多種錄入方法

2020-10-29 20:56:53
字體:
供稿:網(wǎng)友

這個需求是小駱駝發(fā)起的。感謝 微軟云方案交流 236804566 這個高端群的用戶貢獻。
我們首先看看一個標(biāo)準(zhǔn)的數(shù)組是怎么錄入的

PS D:/> $arr= "adf","asdfer","sredsaf" PS D:/> $arradfasdfersredsaf

這里需要注意的是,雙引號和逗號的分隔。不得不說,這是最簡單的錄入方式,但輸入方式不太友好,需要用戶自己去改PowerShell腳本

為了便于用戶交互,我寫了下面的一個范例

$changdu = Read-Host("請輸入陣列中數(shù)據(jù)長度")$s1= "@{"for($x=0; $x -le $changdu-1; $x++){if($x -ne 0)  {   $servers = Read-Host('"輸入要增加的計算機名')  $s1 = $s1+$x+'="'+$servers+'";'  $s1   }if($x -eq 0)   {  $servers = Read-Host('輸入第一個計算機名')  $s1 = $s1+$x+'="'+$servers+'";'  $s1 }}$s1 = '$arr='+$s1+"}"$s1echo xx |Out-File d:/3456.ps1$files = (Get-Childitem d:/3456.ps1).pspathclear-content $filesadd-Content $files -Value "$s1"

執(zhí)行的話,效果是這樣的

請輸入陣列中數(shù)據(jù)長度: 4輸入第一個計算機名: asdf@{0="asdf";"輸入要增加的計算機名: ert@{0="asdf";1="ert";"輸入要增加的計算機名: 2345@{0="asdf";1="ert";2="2345";"輸入要增加的計算機名: gadf@{0="asdf";1="ert";2="2345";3="gadf";$arr=@{0="asdf";1="ert";2="2345";3="gadf";} PS D:/> $arr=@{0="asdf";1="ert";2="2345";3="gadf";} PS D:/> $arr Name       Value                                 ----       -----         3        gadf   2        2345   1        ert   0        asdf

最終輸出的是一句話 ,但是這句話是一個字符串,不是數(shù)組,所以要把它輸出到其他文件,然后單獨運行一下。

$arr=@{0="asdf";1="ert";2="2345";3="gadf";}

運行下面的命令就可以了,當(dāng)然這句話也可以加在上面的腳本中。

powershell d:/3456.ps1

以上方法的可以解決需求,問題在于,它需要新創(chuàng)建一個文件,從效率上來說,是低一些,不過用到了循環(huán),用戶體驗上還是很不錯的,所以改一改,我們試一下split方法。

$arr=(read-host("請輸入需要創(chuàng)建的虛擬機名稱,多個虛擬機用英文狀態(tài)下的逗號隔開")).Split(',')

這里用到了split方法,用都好分隔數(shù)據(jù),把他們變成數(shù)組,關(guān)于split方法,下面這個鏈接說的干脆利落很詳細(xì),我這里就不廢話了

http://www.companysz.com/article/69147.htm

那么上面的腳本我也可以修改一下,用split方法來處理,這樣好處是在當(dāng)前腳本就可以輸出,以及用戶不需要輸入雙引號和

$changdu = Read-Host("請輸入陣列中數(shù)據(jù)長度")$s1= ""for($x=0; $x -le $changdu-1; $x++){if($x -ne 0)  {   $servers = Read-Host('"輸入要增加的計算機名')  $s1 = $s1+$servers+';'  $s1   }if($x -eq 0)   {  $servers = Read-Host('輸入第一個計算機名')  $s1 = $s1+$servers+';'  $s1 }}$s2 =($s1).Split(';')echo $s2

另外應(yīng)該說還有一種方法,是用到了.net的方法來處理,可視化很差,但是效果很好

復(fù)制代碼 代碼如下:

$bb2= New-Object System.Collections.ArrayList
$bb2.Add("第一個")
$bb2.Add("第二個")

輸出的結(jié)果是這樣的,可以看到這種方法更簡單,修改一下,我們也可以做成交互式錄入的方式。

復(fù)制代碼 代碼如下:

PS D:/> $bb2
第一個
第二個

總結(jié)一下,應(yīng)該至少有4種方法解決我們的問題

1、輸出字符串到文本中,用PowerShell xxx.ps1的方式運行
2、用split方法處理字符串,切割成數(shù)組
3、直接無交互的一句話處理
4、.net方法處理

本文出自 “九叔-微軟私有云” 博客

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品23| 亚洲国产精品一区二区久久 | 亚洲成人第一区 | 91精品国产乱码久久桃 | 精品久久久久久久久久中文字幕 | av免费在线观看免费 | 久久免费看片 | 一级免费在线 | 91 成人| 精品成人av一区二区三区 | japanesexxxx24videofree | av国产片| 亚洲最新黄色网址 | 天天看逼| 黄色片在线观看网站 | 91av日韩| 久久国产精品小视频 | 黄色7777| 久久久国产精品免费观看 | 人禽l交免费视频观看 视频 | 成人国产精品色哟哟 | 久草在线公开视频 | 免费毛片播放 | a级黄色片视频 | 九九热这里只有精品8 | 成人在线精品视频 | 日韩视频在线不卡 | 91精品国产综合久久男男 | 国产91在线播放九色 | 国产精品一区在线看 | 免费一级特黄欧美大片勹久久网 | av视在线 | 欧美精品欧美 | 日韩中文字幕一区二区三区 | 国产欧美一区二区三区免费看 | 精品国产91久久久久久 | 国产一区二区三区四区五区精品 | 毛片免费视频观看 | 欧美日韩色 | 国产成人强伦免费视频网站 | 美女福利视频国产 |