Powershell 定義文字

2021-09-09 02:11:36 字數 3847 閱讀 1595

使用引號可以定義字串,如果想讓自己定義的字串原樣輸出,可以使用單引號。

1

2

$text='$fei $(tai) $env:windir 飛苔部落格 (20+2012)'

$text

輸出:

$fei $(tai) $env:windir 飛苔部落格 (20+2012)

如果想讓自己的定義的字元中的變數被內容替換,表示式被執行可以使用雙引號.

1

2

3

$site="飛苔部落格 powershell部落格"

$text="$site $(get-date) $env:windir"

$text

輸出:

飛苔部落格 powershell部落格 08/25/2012 18:49:41 c:windows

文字中的特殊字元

如果文字放置在乙個閉合的雙引號中,powershell直譯器回去尋找特殊字元.在這方便主要有兩種特殊字元,乙個是變數的字首「$」,乙個是反引號「·」位於數字鍵1左邊。

處理變數

將變數放在字串中,輸出時變數會被替換成變數本身的值或者內容。如果將表示式放置在字串中,並且使用的格式如「$(expression)」,表示式也會被執行,並被替換成表示式執行的輸出。

1

2

3

4

5

6

"系統目錄位於:$env:windir"

"預設安裝程式目錄位於:$env:programfiles"

"機器名為:$env:computername"

"當前日期:$(get-date)"

"1gb=$(1gb/1kb)kb"

輸出:

「系統目錄位於:$env:windir」

「預設安裝程式目錄位於:$env:programfiles」

「機器名為:$env:computername」

「當前日期:$(get-date)」

「1gb=$(1gb/1kb)kb」

powershell轉義字元

在其它程式語言中喜歡將反斜槓作為轉義字元,但是在powershell中扮演轉義字元角色的不是反斜槓,而是反引號「`」字串中的反引號,會對緊跟隨其後的字元進行特殊處理。例如下面的,在乙個字串中輸出雙引號,和換行符。

1

2

3

4

5

6

#使用單引號閉合字串輸出雙引號

'the site of my blog is"www.mossfly.com"'

#使用轉義字元輸出雙引號

「my blog site is`"www.mossfly.com`""

#在字串中輸出換行符

「the site of my blog is `"www.mossfly.com`",`n飛苔部落格"

輸出:

the site of my blog is」www.mossfly.com」

my blog site is」www.mossfly.com」

the site of my blog is 「www.mossfly.com」,

飛苔部落格

其它的轉義字元如下表

powershell轉義字元表

轉義字元描述

`n換行符

`r回車符

`t製表符

`a響鈴符

`b退格符

`』單引號

`」雙引號

`0null

「反引號本身

here strings 定義多行文字

@「字串」@格式定義多行文字,尤其是較長的文字,再好不過了

1

2

3

4

5

6

@"

這首詩用來評價陶淵明的詩歌再好不過了

一語天然萬古新,豪華落盡見真淳。

南窗白日羲皇上,未害淵明是晉人。

"@

這裡要注意開始和結束的標記必須另起一行。

使用者互動

如果要提示使用者輸入可以使用read-host

ps e:> $name=read-host "請輸入您的使用者名稱"

請輸入您的使用者名稱: mosser lee

ps e:> "您輸入的使用者名為:$name"

您輸入的使用者名為:mosser lee

只是有一點read-host儲存的字串使用的單引號閉合,也就是說不會自動解析變數,不過可以通過expandstring方法解析,例如:

ps e:> $inputpath=read-host "請輸入檔案路徑"

請輸入檔案路徑: $env:windir

ps e:> $inputpath

$env:windir

ps e:> $executioncontext.invokecommand.expandstring($inputpath)

c:windows

但是如果想通過read-host接受敏感資料,比如密碼,可以使用-assecurestring選項,不過這樣讀取到的資料為securestring,及為加過密後的資料,當然你可以將密碼轉換成普通文字.

ps e:> $pwd=read-host -assecurestring "請輸入密碼"

請輸入密碼: ******

ps e:> $pwd

system.security.securestring

ps e:> [runtime.interopservices.marshal]::ptrtostringauto([runtime.interopservices.marshal]::securestringtobstr($pwd))

abc123

詢問使用者名稱和密碼

如果你想授權乙個使用者需要提供使用者憑據,可以使用get-credential命令,該命令會彈出乙個安全對話方塊,一旦使用者輸入完畢,就會返回乙個credential物件包含使用者名稱和密碼

ps e:> $cre=get-credential mossserlee

ps e:> $cre

username password

-------- --------

mossserlee system.security.securestring

Powershell 自定義物件小技巧

豆子之前在指令碼裡面自定義物件的時候一般是這麼考慮的,我需要建立乙個陣列,每次迴圈的時候把乙個自定義的物件放進去,對於這個自定義的物件的結構,我需要建立乙個雜湊表,然後轉換成自定義物件。這個思路是沒錯,不過具體寫的時候有些小技巧。比如說最近看的乙個小挑戰,其中需要把下面這個 list的值自定義乙個物...

關於《超文字》定義

1,超文字是用超連結的方法,將各種不同空間的文字資訊組織在一起的網狀文字。它更是一種使用者介面正規化,用以顯示文字及與文字之間相關的內容。現時超文字普遍以電子文件方式存在,其中的文字包含有可以鏈結到其他位置或者文件的鏈結,允許從當前閱讀位置直接切換到超文字鏈結所指向的位置。2,一種按資訊之間關係非線...

定義文字樣式 外掛程式

今天抽時間寫乙個定義文字樣式的外掛程式 文字外掛程式文字外掛程式文字外掛程式文字外掛程式文字外掛程式 文字外掛程式文字外掛程式文字外掛程式文字外掛程式文字外掛程式 文字外掛程式文字外掛程式文字外掛程式文字外掛程式文字外掛程式 文字外掛程式文字外掛程式文字外掛程式文字外掛程式文字外掛程式 文字外掛程式...