1. 程式人生 > >從零開始學PowerShell(6) 獲取物件資訊

從零開始學PowerShell(6) 獲取物件資訊

在程式設計世界裡,我們一定聽說過面向物件思維,根據面向物件思維我們可以抽象的把現實世界中每一個事物都看成是一個物件,每個物件都包含自己特有的屬性和方法。

而在PowerShell中任何東西也都是一種物件,我們知道物件含有它的屬性和方法等資訊。當我們在編寫指令碼的時候都會想知道我們除了生成的物件外,這個物件還能實現什麼功能,什麼方法。

那如何檢視物件的屬性等資訊呢,使用Get-Member方法與管道符配合就可以用來發現指定物件的屬性、方法等資訊。比如我們想知道系統程序物件包含哪些屬性和方法可以用,只需要像下面這樣做。

PS /Users/Anders> Get-Process | Get
-Member TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Handles AliasProperty Handles = Handlecount Name AliasProperty Name = ProcessName NPM AliasProperty NPM = NonpagedSystemMemorySize64 PM AliasProperty PM = PagedMemorySize64 SI AliasProperty SI = SessionId VM AliasProperty VM = VirtualMemorySize64 WS AliasProperty WS = WorkingSet64 Parent CodeProperty System.Object Parent{get=GetParentProcess;}

你會看到PowerShell返回了所有與系統程序型別相關的屬性和方法等資訊,首先可以看到第一條資訊TypeName: System.Diagnostics.Process,這表明Get-Member命令是由System.Diagnostics.Process .NET型別構建而來的。接著,我們就可以從那些返回的資料裡做一些有趣的操作。比如預設情況下,當你直接鍵入Get-Process命令是無法檢視到VirtualMemorySize虛擬記憶體大小的,而通過Get-Member檢視物件屬性後得知程序有一個屬性名為VM,代表當前程序的虛擬記憶體大小,那我們可以像下面這樣很簡單的選擇出VM列資料並把它顯示出來。

PS /> Get-Process | Select-Object ProcessName, VM

ProcessName               VM
-----------               --
ForkLift          4362297344
gamed             4590047232
Google Chrome H   6911365120
Google Chrome H   6902108160
Google Chrome H   5691969536
Google Chrome H   5730803712
Google Chrome H   5683720192
hyperkit          6827827200
iBooks            5002887168
icdd              4482146304
iconservicesage   4534165504
identityservice   4506165248
imagent           4489478144
IMAutomaticHist   4482187264
IMDPersistenceA   4455772160
imklaunchagent    4485124096

Get-Member不僅僅可以檢視某個命令的屬性和方法,也可以檢視所有命令的相關屬性與方法。還記得前面說的嗎,在PowerShell中所有的資料均為物件,所以我們也可以在查詢某個命令功能所包含的物件屬性等資訊,像下面這樣。

PS /> Get-Process -ProcessName "Thunder" | Get-Member


   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
NPM                        AliasProperty  NPM = NonpagedSystemMemorySize64
PM                         AliasProperty  PM = PagedMemorySize64
SI                         AliasProperty  SI = SessionId
VM                         AliasProperty  VM = VirtualMemorySize64
WS                         AliasProperty  WS = WorkingSet64
GetType                    Method         type GetType()
Kill                       Method         void Kill()

直接可以在某個命令列用管道傳遞到Get-Member檢視包含哪些有趣的東西,(在這裡我只提取了一部分資料)其中,發現有一個Kill方法,這個方法是終止當前程序,可以這樣使用。

PS /> (Get-Process -ProcessName "Thunder").Kill()

我先獲取了命為Thunder的程序資訊,接著呼叫Kill方法,獎它自動關閉。

除此之外,Get-Member 還可以配合一些特定引數獲得更精準更詳細的資訊。

# 獲得物件多有可呼叫的靜態方法
PS /> Get-Process -ProcessName "Thunder" | Get-Member -Static

# 獲得物件所有可呼叫的方法
PS /> Get-Process -ProcessName "Thunder" | Get-Member -MemberType Method

# 獲得物件所有可呼叫的屬性
PS /> Get-Process -ProcessName "Thunder" | Get-Member -MemberType Property

Get-Member是一個非常實用且高頻率的命令,當你需要更多的操作幫助時,記得使用它。

當然,不同物件的方法型別也有不同的操作方法,這不是本文的重點,所以就不展開了。相信,以後會寫一篇PowerShell如何呼叫不同型別方法的文章。

相關推薦

開始PowerShell(6) 獲取物件資訊

在程式設計世界裡,我們一定聽說過面向物件思維,根據面向物件思維我們可以抽象的把現實世界中每一個事物都看成是一個物件,每個物件都包含自己特有的屬性和方法。 而在PowerShell中任何東西也都是一種物件,我們知道物件含有它的屬性和方法等資訊。當我們在編寫指令碼

開始PowerShell(9) 建立PowerShell物件

我們之前有一篇文章寫過如何獲取物件的資訊,但是從沒有說過如何建立一個PowerShell物件。正巧也看到很多剛學PowerShell的朋友問起這個問題,今天就來說一說如何建立PowerShell物件。 從抽象層面來說,在PowerShell裡哪怕我們定義一個普

Asp.Net開始6

                    CheckBoxList繫結資料庫 資料庫連線累DB.CSusing System;using System.Data.SqlClient;namespace Test2_1{  public class DB {    public

開始大數據-Java基礎-switch語句(6

大數據 Java CCIE 從零開始學大數據 我們從零開始學習大數據技術,從java基礎,到Linux技術涉獵,再深入到大數據技術的Hadoop、Spark、Storm技術,最後到大數據企業平臺的搭建,層層遞進,由點到面!希望技術大牛能過來指導學習。上一節學習了流程控制語句,本節學習switc

開始 Web 之 jQuery(二)獲取和操作元素的屬性

eight images idt 隱藏 lis 屬性 ner master lin 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始 Web 之 HTML5(二)表單,多媒體新增內容,新增獲取操作元素,自定義屬性

器) user 對比 style 按鈕 ont mp3 url -- 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:ht

開始多執行緒之共享物件(二)

想要使用多執行緒程式設計,有一個很重要的前提,那就是必須保證操縱的是執行緒安全的類. 那麼如何構建執行緒安全的類呢? 1. 使用同步來避免多個執行緒在同一時間訪問同一資料. 2. 正確的共享和安全的釋出物件,使多個執行緒能夠安全的訪問它們. 那麼如何正確的共享和安全的釋出物件呢? 這正是這篇部落格要告訴你的.

開始多執行緒之組合物件(三)

前文回顧 通過博主之前釋出的兩篇部落格從零開始學多執行緒之執行緒安全(一)和從零開始學多執行緒之共享物件(二)講解的知識點,我們現在已經可以構建執行緒安全的類了,本篇將為您介紹構建類的模式,這些模式讓類更容易成為執行緒安全的,並且不會讓程式意外破壞這些類的執行緒安全性. 本篇部落格將要講解的知識點 構建執行

開始日文】#6 簡單文型:「請問那個是..」日語基礎文型教學

❶これはAです(這是A) ❷これはAのBです(這是A的B) ❸このAはBのです(這個A是B的) 具體發音請觀看Youtube https://www.youtube.com/watch?v=yDuH4pjWtXM&list=PLuNucubP18snvU3Zz8

開始C++之虛擬函式與多型(一):虛擬函式表指標、虛解構函式、object slicing與虛擬函式、C++物件模型圖

#include <iostream>using namespace std;class CObject {public:     virtual void Serialize()     {         cout << "CObject::Serialize ..." <&

開始 Web 之 DOM(二)對樣式的操作,獲取元素的方式

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 1、對樣式的操作

開始 Web 之 jQuery(七)事件冒泡,事件引數物件,鏈式程式設計原理

一、事件冒泡與阻止事件冒泡 事件冒泡:當一個元素觸發某個事件的時候,會把這個事件傳播到其父元素,一直到頂層元素。 阻止事件冒泡:在被觸發事件的子元素中新增 return false; 即可。 二、事件的觸發 之前講的繫結事件是事件觸發後的事件處理過程,並且上面的事件觸發是被動的事件觸發,怎麼可以主動觸發事

開始 Web 之 JavaScript(五)面向物件

大家好,這裡是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關注。在這裡我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,期間也會分享一些好玩的專案。現在就讓我們一起進入 Web 前端學習的冒險之旅吧! 一、面向物件 1、

開始 Web 之 BOM(一)BOM的概念,一些BOM物件

大家好,這裡是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... +------------------------------------------------------------ github:https://github.com/Daotin/Web 微信公眾號:Web前端之

開始_JavaScript_系列(41)——物件的擴充套件(4)擴充套件運算子三個點...

0、一句話總結 屬性名,以及是屬性的函式的簡潔寫法,寫起來簡單易閱讀 屬性名可以用變數字串拼接起來(話說以前也有吧?) 函式都有name屬性,但set和get也要加字首 Object.is判斷兩個變數是否相等 Obje

71.mybatis 如何獲取插入的id【開始Spring Boot】

在之前的文章已經講過spring boot整合mybatis了,但是忘記說一個很重要的知識點了,那就是獲取獲取主鍵id,這篇文章補充下,spring boot整合mybatis看之前文章:        其實這個也很簡單,主要是使用@Options註解,核心程式碼如下:

IC卡解密開始2 版本更新! 解密工具PN532-mfoc-mfcuk-GUI V2.1 By:lookyour

由於 文件夾 7月 thread 2種 金融 系統 dos 同時 程序更新 更新內容最下面2017/5/3 V2.1======================================最簡要介紹下M1卡數據結構目前能看到的有2種M1卡,分別為S50 S70,其實就是

IC卡解密開始1 (也許會有2) 解密工具V2 V3大放送 By:lookyour

中國 tac ... 需要 編輯框 回復 mile gui for 前段時間發了一個破解的PN532工具,詳見 ===========================IC卡解密工具 PN532工具XP 爆破版http://www.52pojie.cn/thread-5978

開始android&lt;Bitmap圖形組件.四十七.&gt;

alt getheight drawtext layout pla cin mas 簡單 制圖 android.graphics.Bitmap(位圖)是Android手機中專門提供的用於操作圖片資源的操作類,使用此類能夠直接從資源文件之中進行圖片資源的讀取。而且對這些圖

開始Xamarin.Forms(一) 概述

erl 系統 mod 重寫 fwe 依賴 模式 sil c# Xamarin 讀 “?z?m?rin”,是一個基於開源項目mono的可以使用C#開發的收費的跨平臺(iOS、Android、Windows Phone、Mac)解決方式。