PowerShell 模組有 4 種

PowerShell 有模組化的概念,模組化的概念幫助開發者寫出比較容易維護的程式,但在 PowerShell 的世界裡,模組有 4 種,雖然大多數的時候你只會使用某一種做開發,不過知道一下這 4 種模組的差別,能幫助我們理解一下所使用到的模組背後,他是怎麼運作的。

自動更新本機的 Git 專案儲存庫

Git 版控工具是大多數開發者每天都會使用到的工具之一,每位開發者電腦裡面,一定都會有很多從遠端拉下來的 Git 專案,每個專案裡面可能還會做分支來管理,同時在協作開發的過程中,要一直同步多個專案的版本,是一件繁瑣的事情,而且這件事你絕對不會想用介面來處理,用指令有簡單一些,但步驟還是有點多,如果能寫成一個指令,執行他,就能幫我們自動更新所有 Git 專案的版本,而且每個分支都能憶起更新,是不是就可以留下更多時間可以寫 Code 了呢,這篇用 PowerShell 來製作一個能夠自動更新本機 Git 專案儲存庫的指令。

簡單使用 Import-Module 匯入 PowerShell 模組指令碼

PowerShell 提供模組化使用方式,讓你可以將各種功能模組化後,根據需求匯入使用,通常我們會將 PowerShell 的模組安裝在固定的位置,你可以在 PowerShell 環境中執行 $Env:PSModulePath 來查看 PowerShell 會自動從那些地方載入模組,但有時候我們不想安裝在全域,只是想在我當前的 .ps1 檔中簡單的匯入使用,這時候你可以參考這篇的做法。

更新本機 Git 到最新版

不管是修補安全漏洞或是提供新功能,Git 版控工具一直在進步,要升級 Git 其實相當單純,解除安裝然後下載新版本的安裝檔,重新安裝一下就好了,但如果你有安裝 Git for Windows,那麼你有更方便的指令來更新 Git。

使用 Topshelf 與 .NET 泛型主機建立 Windows Service 專案架構

上一篇使用 Topshelf 處理了啟動 Windows Service 時要環境參數的問題,為了讓之後用 Topshelf 寫 Windows Service 時,有更一致的寫法,這篇將使用使用 Topshelf 與 .NET 泛型主機架構,來建立專案架構。

傳遞參數來啟動 Windows Service (使用 Topshelf 實作)

使用 Topshelf 框架來開發 Windows Service 專案,是一個相當不錯的選擇,他解決的版本更新總是又要用 sc.exe 重新安裝 Windows Service 以及 Debug 不易的問題。然而 Topshelf 框架本質是一個 Console 應用程式,這隻程式最終安裝到 Windows 服務控制管理器(SCM)中,而有時候我們會希望傳遞參數,然後根據參數值來啟動應用程式,但這樣的行為在 SCM 卻無法直接處理,因此要做到此功能,處理方式要稍微有點不一樣。

使用系統管理員身分開啟 Windows Terminal 分頁

如果你曾經使用過 cmder 你一定對讚譽有佳,我也不例外,不過自從我改用 Windows Terminal 之後,除了無法只將其中一個 Tab 分頁用系統管理員開啟外,我再也沒有想念 cmder 了,而最近好同事教了我一招,讓我能用系統管理員身分開啟 Windows Terminal 分頁,我想我真的可以忘記 cmder 了(謝謝 cmder 曾經讓我重拾打指令的快感)。

批次移除舊版本 .NET Core SDK

當使用 .NET Core 開發一段時間後,會發現你的作業系統安裝了很多版本的 .NET Core SDK 或 Runtime,因為在 Visual Studio 2019 16.3 版之前,每次更新 Visual Studio,Visual Studio 安裝程式會安裝相依版本的 .NET Core SDK,因此在控制台的 [新增或移除程式] 中,會看到很多版本的 .NET Core SDK,官方推出了一個小工具,幫助我們快速移除這些不會再用到的 SDK。

使用 oh-my-posh 美化 PowerShell 樣式

之前一直很羨慕 Mac OS 的使用者有 iTerm2 + oh-my-zsh 可以讓終端命令列介面變得美美的,自從 Microsoft 官方推出 Windows Terminal,讓我弭補了沒有 iTerm2 的缺憾後,再加上 oh-my-posh 這個 Powershell 樣式套件,終於可以在 Windows 環境下輕送設定美美的 PowerShell 樣式了!這篇紀錄如何輕鬆使用 oh-my-posh 美化 PowerShell 樣式。

System.Text.Json 反序列化/序列化轉換 TimeSpan 型別

System.Text.Json 目前無法反/序列化轉換 TimeSpan 型別,但從 .NET 5 的 Milestone可以知道,這功能將會包含在 .NET 5 之中,在此之前,如果真的要對 TimeSpan 做反/序列化轉換,可以自行實作 JsonConverter 來處理。