国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - PowerShell - PowerShell 數組的多種錄入方法

PowerShell 數組的多種錄入方法

2020-07-05 10:47九叔 PowerShell

這篇文章主要介紹了PowerShell 數組的多種錄入方法,需要的朋友可以參考下

這個需求是小駱駝發起的。感謝 微軟云方案交流 236804566 這個高端群的用戶貢獻。
我們首先看看一個標準的數組是怎么錄入的

?
1
2
3
4
5
6
PS D:> $arr= "adf","asdfer","sredsaf"
 
PS D:> $arr
adf
asdfer
sredsaf

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$changdu = Read-Host("請輸入陣列中數據長度")
$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+"}"
$s1
echo xx |Out-File d:?6.ps1
$files = (Get-Childitem d:?6.ps1).pspath
clear-content $files
add-Content $files -Value "$s1"

執行的話,效果是這樣的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
請輸入陣列中數據長度: 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

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

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

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

powershell d:?6.ps1

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

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

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

http://www.jfrwli.cn/article/82018.html

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$changdu = Read-Host("請輸入陣列中數據長度")
$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

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

 

復制代碼 代碼如下:

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

 

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

 

復制代碼 代碼如下:

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

 

總結一下,應該至少有4種方法解決我們的問題

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品99久久久久久久vr | 国产精品v一区二区三区 | 在线观看av网站 | 中文字幕在线视频第一页 | 国产精品美女久久久网av | 国产日韩欧美一区二区 | 精品一区在线视频 | 精品一区二区在线观看 | 亚洲精品乱码久久久久久金桔影视 | 亚洲免费成人av | 日韩午夜| 国产在线一区二区 | 黄色av影视| 成人日韩 | 国产成人黄色网址 | 人人九九精 | 国产综合区 | 国产精品99久久久久久久女警 | 免费一级毛片在线观看 | 精品亚洲一区二区 | 欧美视频免费看 | 国产精品久久久久久久一区探花 | 欧美一区二区三区四区不卡 | 亚洲国产精品免费 | 久久av综合网 | 国产精品永久免费自在线观看 | 黄色毛片一级 | 五月天婷婷综合 | 国产精品a久久久久 | 国产欧美精品一区二区三区四区 | 久草福利资源 | 亚洲综合色自拍一区 | 国产精品爱久久久久久久 | 日本末发育嫩小xxxx | 免费啪啪网站 | 欧美日韩在线免费 | 一区二区三区在线 | 国产乱码精品1区2区3区 | 亚洲一区视频 | 日韩中文字幕在线免费观看 | 国产在线日韩 |