今天跟網(wǎng)友扯淡,網(wǎng)友給了兩行代碼,可以輸出以下的效果
創(chuàng)新互聯(lián)主營沈丘網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),沈丘h5微信平臺小程序開發(fā)搭建,沈丘網(wǎng)站營銷推廣歡迎沈丘等地區(qū)企業(yè)咨詢1..9 | %{$a=@()} {$a+=$("{0}{1}{0}" -f (" " * (9-$_)),("$_" * (2*$_-1)))}{$a[0..8+7..0]} 1..9 | %{$a=""}{for ($i=1;$i -le $_;$i++){$a+="{0,-7}" -f " $i X $_=$($i*$_)"};$a+="`r`n"}{$a}
第一眼看上去,老實(shí)承認(rèn)真沒看懂這兩行怎么工作的,仔細(xì)學(xué)習(xí)了一會,終于明白了邏輯關(guān)系。
這兩行代碼主要利用的是PowerShell 里面利用-F的格式操作符。
參考資料如下
http://ss64.com/ps/syntax-f-operator.html
這個操作符主要有2個表達(dá)形式:
表達(dá)形式1
"String with placeholders" -f "Array of values to place into the placeholders"
比如說
Get-ChildItem c:\temp | ForEach-Object {'Filename: {0} Created: {1}' -f $_.fullname,$_.creationtime}
可以看見Filename的名字分配給了 fullname這個屬性;而Created分配給了creationtime這個屬性
表達(dá)形式2, I表示位置,A表示空格位置,負(fù)數(shù)表示右邊加空格,正數(shù)表示左邊加空格,F(xiàn)S是一些格式選項(xiàng),比如HEX進(jìn)制,百分比等等。
"{I,A:FS} {I,A:FS} {I,A:FS}.." -f "string0", "string1", "string2"...
上面提到的兩個例子主要就是利用了第二種表達(dá)方式?,F(xiàn)在來仔細(xì)看看。
1..9 | %{$a=@()} {$a+=$("{0}{1}{0}" -f (" " * (9-$_)),("$_" * (2*$_-1)))}{$a[0..8+7..0]}
金字塔的基本原理都知道,算好每一行的空格和數(shù)字?jǐn)?shù)量,然后寫循環(huán)就行。
首先 1到9 通過管道傳入,然后對于每一個數(shù)字,他創(chuàng)建了一個數(shù)組,{0}{1}{0} 對應(yīng)后面提供的兩個字符串,剛好滿足“空格”+"數(shù)字"+"空格“這個格式。{0}對應(yīng)的就是(" " *(9-$_)),{1}對應(yīng)的就是("$_"*(2*$_-1))
累加起來,$a剛好就是金字塔的上半部分。最后通過$a[0..8]輸出上半截,$a[7..0]輸出下半截~
1..9 | %{$a=""}{for ($i=1;$i -le $_;$i++){$a+="{0,-7}" -f " $i X $_=$($i*$_)"};$a+="`r`n"}{$a}
這個例子的思路也很相似。管道傳入每一個數(shù)字,分別列出來,{0,-7}表示的就是在當(dāng)前輸出字符串右邊加7個空格而已;注意這個例子里面他初始化創(chuàng)建的$a是一個空字符串,因此加進(jìn)去的時(shí)候每一個元素他不會像數(shù)組一樣自動換行,作者在每次循環(huán)結(jié)束加了個回車換行符。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章名稱:Powershell-F格式操作符-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article30/phpso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、云服務(wù)器、網(wǎng)站改版、動態(tài)網(wǎng)站、電子商務(wù)、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容