濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > PowerShell 數(shù)組的多種錄入方法

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

熱門(mén)標(biāo)簽:真人和電話機(jī)器人對(duì)話 金融電銷(xiāo)公司怎么辦理外呼系統(tǒng) 湖州電銷(xiāo)防封卡 安徽400電話辦理 信陽(yáng)話務(wù)外呼系統(tǒng)怎么收費(fèi) 什么渠道可以找外呼系統(tǒng)客戶 使用電話機(jī)器人電銷(xiāo)是否違法 電話智能外呼系統(tǒng)誠(chéng)信合作 雷霆電話機(jī)器人電話

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

PS D:\&; $arr= "adf","asdfer","sredsaf"
 
PS D:\&; $arr
adf
asdfer
sredsaf

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

為了便于用戶交互,我寫(xiě)了下面的一個(gè)范例

$changdu = Read-Host("請(qǐng)輸入陣列中數(shù)據(jù)長(zhǎng)度")
$s1= "@{"
for($x=0; $x -le $changdu-1; $x++)
{if($x -ne 0)
  { 
  $servers = Read-Host('"輸入要增加的計(jì)算機(jī)名')
  $s1 = $s1+$x+'="'+$servers+'";'
  $s1
   }
if($x -eq 0) 
  {
  $servers = Read-Host('輸入第一個(gè)計(jì)算機(jī)名')
  $s1 = $s1+$x+'="'+$servers+'";'
  $s1
 }}
$s1 = '$arr='+$s1+"}"
$s1
echo xx |Out-File d:\3456.ps1
$files = (Get-Childitem d:\3456.ps1).pspath
clear-content $files
add-Content $files -Value "$s1"

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

請(qǐng)輸入陣列中數(shù)據(jù)長(zhǎng)度: 4
輸入第一個(gè)計(jì)算機(jī)名: asdf
@{0="asdf";
"輸入要增加的計(jì)算機(jī)名: ert
@{0="asdf";1="ert";
"輸入要增加的計(jì)算機(jī)名: 2345
@{0="asdf";1="ert";2="2345";
"輸入要增加的計(jì)算機(jī)名: 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

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

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

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

powershell d:\3456.ps1

以上方法的可以解決需求,問(wèn)題在于,它需要新創(chuàng)建一個(gè)文件,從效率上來(lái)說(shuō),是低一些,不過(guò)用到了循環(huán),用戶體驗(yàn)上還是很不錯(cuò)的,所以改一改,我們?cè)囈幌聅plit方法。

$arr=(read-host("請(qǐng)輸入需要?jiǎng)?chuàng)建的虛擬機(jī)名稱,多個(gè)虛擬機(jī)用英文狀態(tài)下的逗號(hào)隔開(kāi)")).Split(',')

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

https://www.jb51.net/article/69147.htm

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

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

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

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

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

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

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

PS D:\&; $bb2
第一個(gè)
第二個(gè)

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

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

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

標(biāo)簽:六盤(pán)水 岳陽(yáng) 山南 運(yùn)城 德州 濟(jì)南 鶴崗 湛江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PowerShell 數(shù)組的多種錄入方法》,本文關(guān)鍵詞  PowerShell,數(shù)組,的,多種,錄入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PowerShell 數(shù)組的多種錄入方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PowerShell 數(shù)組的多種錄入方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    洪泽县| 称多县| 屏东市| 宁阳县| 同心县| 柳江县| 平昌县| 乌鲁木齐县| 安吉县| 沙雅县| 栖霞市| 任丘市| 高密市| 徐州市| 汉中市| 赣州市| 民勤县| 安仁县| 南江县| 赤城县| 中阳县| 阜平县| 通州市| 高唐县| 聊城市| 德安县| 太谷县| 法库县| 华池县| 白水县| 九江市| 察哈| 海丰县| 北流市| 新乐市| 昌乐县| 隆尧县| 株洲县| 敖汉旗| 永康市| 芜湖县|