捐血一袋救人一命

2024年3月23日 星期六

Powershell 變數特性

Power Shell 是一個弱型別的 Script Language 不需要宣告,變數存甚麼,就是甚麼型態 $a="123" $a.GetType() $a = 456 $a.GetType() Result: IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object True True Int32 System.ValueType 要注意的是,變數初始值設定的方法 $a, $b = 1, 2 ,3 Result: $a = 1 # 數值 $b = 2, 3 # 是陣列 function abc{ return 1,"A","C" } $a, $b = abc $a.GetType() $b.GetType() Result: IsPublic IsSerial Name BaseType...

Powershell 變數型態_String

Powershell 的字串,可以使用對稱的 雙引號,或是單引號 * 如果字串本身包含大括號 { 或 },就要改成 {{ 或 }} * 如果字串本身有雙引號,就要使用 Double 雙引號 "" * 如果字串本身有單引號,就要使用 Double 單引號 '' * 經過格式化字串之後,得到的資料型態為字串 * 如果字串本身有 $,請使用 Double $ 或是跳脫字元 ` * 如果字串本身有 `,請使用 Double ` * 如果字串中要輸出跳行,請使用 `r`n * 如果字串中要輸出TAB,請使用 `t 例如: "他的外號叫做""豬頭""" Result: 他的外號叫做"豬頭" 格式化字串 格式化字串的方法 第一種方式,字串中夾變數 $age = 52 "我的年齡是 $age 歲" Result: 我的年齡是 52 歲 第二種方式 "格式字串" -f 參數 第三種方法 [string]::format("格式字串", 參數) 數值格式化字串 代號 說明 # nm m 表示小數位數,不足會補零對齊 dm m 表示數值位數,不足的位數會補零 "{0:n2}" -f 123.5 "{0:n2}" -f 3.14 Result: 123.50 3.14 "{0:d2}"...

小百岳

小百岳列表 編號 山名 縣市別 鄉鎮市區別 別名 難度 座標 標高(m) 備註 1 大屯山 台北市、新北市 北投區、淡水區 1.3 1092 2 七星山 台北市 北投區 1.4 1120 3 大武崙山 基隆市 安樂區 砲台山 0.6 231 近中山區界 4 槓子寮山 基隆市 中正區 槓子寮砲台 0.1 25.143730986822487, 121.7819003870428 163 5 觀音山 新北市 八里區 硬漢嶺 1.5 25.135933897405756, 121.42666847085579 616 2023/11/19已達成 6 基隆山 新北市 瑞芳區 大肚美人山 0.9 588 7 紅淡山 基隆市 仁愛區 0.8 210 8 大崙頭山 台北市 士林區、內湖區 0.3 478 9 劍潭山 台北市 士林區 0.3 153 2024/01/27已達成 10 五分山 新北市 瑞芳區、平溪區 0.1 757 11 姜子寮山 基隆市 七堵區 三角架山 0.9 729 12 汐止大尖山 新北市 汐止區 0.5 460 13 南港山 台北市 信義區、南港區 0.8 375 2024/01/20已達成 14 土庫岳 新北市 深坑區 大坪山 0.2 389 近南港區界 15 大棟山 新北市、桃園市 樹林區、龜山區 1.2(0) 405 16 南勢角山 新北市 中和區、新店區 風爐塞山 2.1 302 17 二格山 台北市、新北市 文山區、石碇區 石尖山 2.4 678[1] 18 天上山 新北市 土城區 皇帝山 0.4 429 19 福德坑山 新北市 三峽區 鳶山 0.3 321 並非標高300公尺之鳶山 20 獅仔頭山 新北市 新店區、三峽區 1.7 858 21 金面山 桃園市 大溪區 鳥嘴尖 1.4 667 22 東眼山 新北市、桃園市 三峽區、復興區 0.7 1212 2024/02/03已達成 23 溪洲山 桃園市 大溪區 1.8 577 24 石門山 桃園市 龍潭區 小竹坑山 1.6 551 25 石牛山 桃園市、新竹縣 復興區、關西鎮 1.5 671 26 十八尖山 新竹市 東區 0.1 130 27 飛鳳山 新竹縣 芎林鄉 中坑山 1.7 462 非423m的飛鳳山,而是二等三角點的中坑山 28 李崠山 桃園市、新竹縣 復興區、尖石鄉 李棟山 1.2 1914 29 獅頭山 苗栗縣 三灣鄉、南庄鄉 0.3 492 30 五指山 新竹縣 竹東鎮、北埔鄉、五峰鄉 1.8 1062 31 鵝公髻山 新竹縣、苗栗縣 五峰鄉、南庄鄉 1.8 1579 32 向天湖山 苗栗縣 南庄鄉 1.9 1225 33 仙山 苗栗縣 獅潭鄉 紅毛館山 0.5 967 34 加里山 苗栗縣 南庄鄉、泰安鄉 加里仙山 2.4 2210 台灣富士山,注意可能有高山症 35 火炎山 苗栗縣 苑裡鎮、三義鄉 1.7 596 36 關刀山 苗栗縣 三義鄉、大湖鄉 1 889 37 馬那邦山 苗栗縣 大湖鄉、泰安鄉 馬拉邦山 2 1407 近卓蘭鎮界 38 鐵砧山 台中市 外埔區 0.2 236 跨大甲區境 39 稍來山 台中市 和平區 0.7 2307 注意可能有高山症 40 聚興山 台中市 潭子區 0.8 500 41 頭嵙山 台中市 北屯區、新社區 0.7 859 42 南觀音山 台中市 北屯區 0.3 318 43 三汀山 台中市 太平區 1.5 480 44 暗影山 台中市 太平區 酒桶山 1 997 45 大橫屏山 台中市、南投縣 太平區、國姓鄉 2.1 1205 46 阿罩霧山 台中市 霧峰區 0.1 249 47 九份二山 南投縣 中寮鄉、國姓鄉 0.6 1174 48 橫山 南投縣 南投市、名間鄉 1.5(0.2) 444 近彰化縣社頭鄉界 49 貓囒山 南投縣 魚池鄉 0.8 1016 50 集集大山 南投縣 集集鎮、中寮鄉 0(2.8) 1392 近水里鄉界 51 松柏坑山 彰化縣、南投縣 二水鄉、名間鄉 松柏嶺 1(0) 430 52 後尖山 南投縣 魚池鄉、水里鄉 1 1008 53 鳳凰山 南投縣 鹿谷鄉 2.1 1696 54 金柑樹山 南投縣 竹山鎮、信義鄉 2.8 2091 55 石壁山 雲林縣、嘉義縣 古坑鄉、阿里山鄉 1.5 1751 近竹山鎮界 56 雲嘉大尖山 雲林縣、嘉義縣 古坑鄉、梅山鄉 1.5 1299 57 梨子腳山 嘉義縣 梅山鄉 掘尺嶺山、...

2024年3月13日 星期三

Powershell 變數型態_Array

Array 同一陣列內,可以混合儲存各種形態資料 陣列起始註標為 0 陣列的表示法 $a1 = 1..3 $a2 = 1,2,3 $a3 = @(1,2,3) $a4 = (1..3), "ABC", (7..9), @{'name'="tom"; "age"=51} Result $a4[0] = 1, 2, 3 $a4[1] = "ABC" $a4[2] = 7, 8, 9 宣告空陣列 $a5 = @() $a5.Count -eq 0 # True 只有一個變數值,要設定為陣列 $a6 = , "Hello" $a7 = @("Hello") # 輸出 $a6 變數註標值為0的元素 $a6[0] # 輸出 $a7 變數註標值為0的元素 $a7[0] $a6.GetType() $a7.GetType() Result: Hello Hello IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array ...

Powershell 變數型態_Hashtable

三種 Hash Table 的表示方式 為什麼要用 Hash Table 這種資料結構? 因為Powershell 可以很方便的將 Hash Table 陣列轉換換成 PSObject 而 PSObject可以很方便的轉換成各種格式,例如 .csv .html table .json .xml $v1 = @{} $v2 = New-Object -TypeName Hashtable $v3= @{ "Key1" = 3 "Key2" = "String" "Key3" = @("array",5,"string") } $v2.Add("Key1",5) $v2.Add("Key2","string") $v2 | Format-List $v3 | Format-Table Hash Tables https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_hash_tables?view=powershell-5.1...

2024年3月12日 星期二

Powershell 系統內建變數

Automatic Variables 自動變數 (系統內建變數) 變數 說明 $$ $? 查詢前一次指令的執行狀態 $^ 查詢前一次執行的指令 $_ 迴圈或是 Pipe 的暫存變數 $args $ConsoleFileName $Error $Event $EventSubscriber $ExecutionContext $true $false $null $foreach $HOME 使用者帳號家目錄路徑 $Host 用來判斷Powershell運行的環境 $input $inputScript $IsCoreCLR v7 $IsLinux v7 判斷作業系統是否為 Linux $IsMacOS v7 判斷作業系統是否為 MacOS $IsWindows v7 判斷作業系統是否為 Microsoft Windows $LastExitCode $Matches 正規式比對的結果 $MyInvocation $PSScriptRoot $PSCommandPath $NestedPromptLevel $PID 取得目前Powershell...

Powershell 命名規定

命名基本規定 Powershell 是不會區分大小寫的 系統有一些內建系統變數、環境變數、關鍵字,變數的命名上是不能使用的,不然變數值會被系統覆蓋掉。 變數名稱中最好不要有特殊字元,例如:- (破折號),會被當成運算元減號,如果一定要用破折號,請將變數名稱用大括號括起,但這樣寫起來挺麻煩的,也容易出錯,還是不建議這樣搞! ${Saved-Items} = "a","b","c" ${Saved-Items} Powershell Cmdlet/Function 命名有一定規矩,就是 Verb-Noun (動詞/動作-名詞),而且有規範只能使用哪些動詞(雖然,使用規範以外的動詞,不會發生甚麼錯誤,但是在 Visual Studio Code 裡執行時,會一直出現警告) 如果要知道Powershell 規範哪些動詞,可以執行 Get-Verb 如果要知道,有哪些命令可以使用,可以執行 Get-Command -Noun restmethod* Get-Command -Verb...

PowerShell 簡介

什麼是 PowerShell? Powershell 是一個微軟發展的跨平台的語言,可以在 Windows、Linux、MacOS 上運行。 雖然號稱是跨平台,但是在不同的平台上,程式需要些許調整! 就我個人的經驗,在 Linux 平台上,可以運行 Powershell 但是,我還是會建議盡量使用 bash shell script 或是其他程式語言 PowerShell 能夠管理那些系統? Microsoft Azure Windows Server/Client Exchange Server SQL Server Hyper-V VMware AWS VMware GCP Powershell 能做那些事? 呼叫 API 讀取網頁(無法讀取前端Javascript Render 的網頁資料) 使用 Selenium 網頁爬蟲 讀寫資料庫 存取 FTP、SSH、SMTP、POP3 發送郵件(有些需要特過 Third Party) 透過 Web Server GCI 執行 透過 HTTP Listener 建立 Web Service (需要自己處理 MIME Type File) 讀寫 CSV, JSON, XML, HTML 壓縮/解壓縮 ZIP 檔案管理 註冊機碼管理 連接/中斷網芳 透過WinRM,管理遠端電腦 載入...

Powershell 流程控制

If If (<test1>) {<statement list 1>} [elseif (<test2>) {<statement list 2>}] [else {<statement list 3>}] 簡略寫法 <condition> ? <if-true> : <if-false> Switch 基本語法 Switch ( <test-expression> ){ <result1-to-be-matched> {<action>} <result2-to-be-matched> {<action>} Default {<action>} # optional } 特別參數及語法 Switch [-regex | -wildcard | -exact] [-casesensitive]...

Powershell 迴圈的額外說明

Powershell 迴圈的額外說明 以下三種 Powershell 迴圈程式,先試著猜猜結果為何 Function loop1{ 1..3 | ForEach-Object{ If ($_ -eq 2){ Return "Y", $_ }Else{ Return "N", $_ } } } loop1 Function loop2{ For($i=1; $i -le 3; $i++){ If ($_ -eq 2){ Return "Y", $i }Else{ Return "N", $i } } } loop2 Function loop3{ ForEach($num in 1..3){ If ($_ -eq 2){ Return "Y", $num }Else{ Return "N", $num } } } loop3 當你分別執行上面的程式之後,會發現 ForEach-Object{...

Powershell 迴圈

Powershell 迴圈 第一種迴圈 For (<Init 變數初始值>; <Condition 迴圈繼續執行條件>; <Repeat/Step 變數增減運算式>){ <Statement list> } 例如: 設定變數 $v = 1,$a = 10 當 $v 數值小於等於 5 時,執行迴圈內指令 變數 $v 的值,每次累加 2 For ($v, $a=1,10; $v -le 5; $v = $v + 2){ "`$v = $v" $a += $v "`$a = $a" } 因為要程式輸出 $,所以 $ 前面要加上 ` 跳脫符號 第二種迴圈 ForEach (<item> in <collection>){ <Statement list> } 第三種迴圈 先判斷是否吻合條件 While (<condition){ <Statement...