Windows 10中常用的15項PowerShell高級任務(wù)
想必一直關(guān)注 Windows 10 開發(fā)進(jìn)度的朋友已經(jīng)知道,微軟將于 Windows 10 Creators Update 中直接用 PowerShell 替換掉命令提示符(CMD),此前系統(tǒng)極客也早就建議大家棄用 CDM 直接使用 PowerShell。目前微軟已經(jīng)開始 PowerShell 向 Linux 系統(tǒng)的布局,而自家產(chǎn)品特別是企業(yè)級產(chǎn)品中,PowerShell 早已成為首要管理接口(圖形界面反而次之),此后直接在 Windows 中提升 PowerShell 地位,逐步將 CDM 淡出歷史舞臺也是必然。
雖然要成就 PowerShell 專家必掌握大量基礎(chǔ)知識和大量實踐,但它卻可以實現(xiàn)對 Windows 和微軟其它主流產(chǎn)品的幾乎所有管理功能(包括很多圖形界面都無法實現(xiàn)的功能)。然 PowerShell 對新手用戶來說可能會感覺陌生甚至恐懼,但通過本文介紹的 15 個 PowerShell 高級任務(wù),應(yīng)該能幫助 Windows 用戶了解其基本用途,并幫大家開啟一扇新的學(xué)習(xí)大門。
打開PowerShell環(huán)境
Windows 10 中已內(nèi)置了 PowerShell 命令行環(huán)境,大家可以直接搜索「PowerShell」并以管理員身份運行。
或者在搜索欄中鍵入 PowerShell 搜索到之后用Ctrl + Shift + 回車打開。
設(shè)置日期和時間
有很多種方法都可以設(shè)置 Windows 系統(tǒng)的時間、日期,但使用 PowerShell 應(yīng)該說是最快捷的方式了,只需類似如下命令即可:
- Set-Date -date "2016-12-01 8:30 AM"
AM 和 PM 相信不用解釋了吧。
調(diào)整日期和時間
某些特殊情況下,我們可能需要對日期和時間進(jìn)行調(diào)整而不是直接指定具體值,要完成此任務(wù)還是使用 Set-Date cmdlet,但用法與此前就有所不同了,例如:
- Set-Date (Get-Date).AddDays(2)
從上面命令大家可以看到,我們先通過 Get-Date 獲取當(dāng)前日期之后再觸發(fā) Set-Date 為日期加 2。當(dāng)然此命令還可以使用 AddHours、AddMinutes 或 AddSeconds 為時間增加時、分、秒等。
驗證文件和文件夾
PowerShell 命令可以方便地檢查計算機(jī)上是否存在某個文件和文件夾,使用 Test-Path cmdlet 再跟上路徑即可完成驗證,而無需花時間在資源管理器中去找。例如:要驗證 C 盤是否存在一個名為 PowerShell.xlsx 的 Excel 文件可以使用如下命令:
- Test-Path c:\PowerShell.xlsx
此命令返回的是 True 或 False 這樣的布爾值,如果你不知道確切的文件名,也可以直接使用通配符,例如:
- Test-Path c:\*.xlsx
重命名文件和文件夾
一旦你知道文件名文件夾的確切路徑,PowerShell 也可以非常容易地重命名文件和文件夾,只需參考如下示例使用Rename-Item cmdlet 即可:
- Rename-Item c:\PowerShell.xlsx New_PowerShell.xlsx
移動文件和文件夾
使用 PowerShell 移動文件或文件夾也非常容易,使用 Move-Item cmdlet 即可,例如:
- Move-Item c:\PowerShell.xlsx d:\PowerShell.xlsx
結(jié)合通配符使用,可以快速將特定類型的文件從一個文件夾移動到另一個文件夾:
- Move-Item c:\*.xls d:\excel\
打開程序
Invoke-Item cmdlet 可以直接在 PowerShell 提示符中打開應(yīng)用程序:
- Invoke-Item c:\Windows\System32\notepad.exe
但已經(jīng)在 Windows Path 路徑中的應(yīng)用可以直接用名稱執(zhí)行,例如:
- notepad
使用默認(rèn)程序打開文件
Invoke-Item cmdlet 除可以執(zhí)行應(yīng)用程序外,還可直接用于打開文件。但需要大家注意的是,使用它打開文件時,只會使用該文件類型關(guān)聯(lián)的默認(rèn)應(yīng)用程序打開。
- Invoke-Item c:\Sysgeek\Hello.txt
以批處理形式打開文件
當(dāng) Invoke-Item cmdlet 與通配符結(jié)合時,可以批量打開某類型的文件:
- Invoke-Item c:\Sysgeek\*.txt
讀取文本文件
PowerShell 是可以直接處理文本文件內(nèi)容的,例如使用 Get-Content 命令即可讀取文本文件內(nèi)容:
- Get-Content c:\Sysgeek\Hello.txt
如果你只是想預(yù)覽文件,而非閱讀整個文本,可以使用 -totalcount 參數(shù):
- Get-Content c:\Sysgeek\Hello.txt -totalcount 1
添加文本內(nèi)容
除讀取文本文件內(nèi)容外,在 PowerShell 中使用 Add-Content cmdlet 可以直接添加內(nèi)容:
- Add-Content c:\Sysgeek\Hello.txt "by 海猴子"
當(dāng)然,此命令只是將文本追加到文件***,不一定滿足你的需求。
統(tǒng)計文本文件
不論是要統(tǒng)計普通文件也好,還是想統(tǒng)計一天編寫了多少行代碼,都可以使用如下命令:
- Get-Content c:\Sysgeek\Hello.txt | Measure-Object
服務(wù)狀態(tài)統(tǒng)計
當(dāng)你需要統(tǒng)計 Windows 服務(wù)及狀態(tài)時,此前可能會手動一個一個去查看,其實使用 PowerShell 的 Get-Service cmdlet 即可立即遍歷出當(dāng)前系統(tǒng)上的所有服務(wù)及狀態(tài):
- Get-Service
除此之外,要按服務(wù)狀態(tài)進(jìn)行統(tǒng)計也非常方便,例如要統(tǒng)計當(dāng)前所有已停止的服務(wù)可以使用如下命令:
- Get-Service | Where-Object {$_.status -eq "stopped"}
重啟服務(wù)
一旦你確定某個服務(wù)導(dǎo)致問題時,可以直接從 PowerShell 重新啟動它:
- Restart-Service Dnscache
如果你不知道具體的服務(wù)名稱,也可以通過參數(shù)來指定服務(wù)的顯示名稱:
- Restart-Service -displayname "DNS Client"
更改服務(wù)啟動狀態(tài)
在 PowerShell 中更改服務(wù)的啟動狀態(tài)也非常簡單,只需使用 Set-Service 的 -startuptype 參數(shù)即可:
Set-Service Dnscache -startuptype "manual"
該參數(shù)還可以用 automatic(自動啟動)和 disabled (禁用)兩個參數(shù)來取代。
強(qiáng)制刷新Windows 10 Apps
如果你的 Windows 10 Apps 卡在啟動界面或無法初始化,可以使用如下 PowerShell 命令來強(qiáng)制刷新應(yīng)用:
- Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
除此之外,PowerShell 還可用于卸載 Windows 10 內(nèi)置應(yīng)用。
小結(jié)
對于 PowerShell 與 CMD 的區(qū)別系統(tǒng)極客此前已有文章進(jìn)行過介紹,本文介紹的都是 PowerShell Cmdlet 的最基礎(chǔ)用法,算是為大家學(xué)習(xí) PowerShell 進(jìn)行拋磚引玉吧。