封閉在雙引號(hào)中的字符串能夠直接使用變量,這是常用的手法,如代碼:
$name = $host.Name
"Your host is called $name."
可是這個(gè)技巧也有限制。如果你想要顯示對(duì)象的屬性而不是這個(gè)變量的本身,例如這樣將會(huì)失敗:
PS> "Your host is called $host.Name."
Your host is called System.Management.Automation.Internal.Host.InternalHost.Name.
這是因?yàn)镻S僅能解決變量的本身(如$host),而不支持它的屬性。
同時(shí)你也不能控制數(shù)字的格式,執(zhí)行下面代碼,結(jié)果看起來有很多位數(shù)字:
# get available space in bytes for C: drive
$freeSpace = ([WMI]'Win32_LogicalDisk.DeviceID="C:"').FreeSpace
# convert to MB
$freeSpaceMB = $freeSpace / 1MB
# output
"Your C: drive has $freeSpaceMB MB space available."
這里有一個(gè) -F 方法能同時(shí)解決這些問題。只需要將它放在模版文本的左邊,它的值就會(huì)被正確的帶入:
# insert any data into the text template
'Your host is called {0}.' -f $host.Name
# calculate free space on C: in MB
$freeSpace = ([WMI]'Win32_LogicalDisk.DeviceID="C:"').FreeSpace
$freeSpaceMB = $freeSpace /1MB
# output with just ONE digit after the comma
'Your C: drive has {0:n1} MB space available.' -f $freeSpaceMB
現(xiàn)在你看,使用-F讓你有兩個(gè)有利條件:這里帶括號(hào)的占位符指出了帶入?yún)?shù)的起始位置,同時(shí)它還接受格式?!皀1”代表保留1位小數(shù)??梢愿淖兯鼇頋M足你的需求。
支持PS所有版本
您可能感興趣的文章:- PowerShell中使用Get-ChildItem命令讀取目錄、文件列表使用例子和小技巧
- Powershell小技巧之使用Copy-Item添加程序到開機(jī)啟動(dòng)
- Powershell小技巧之復(fù)合篩選
- Powershell小技巧之通過EventLog查看近期電腦開機(jī)和關(guān)機(jī)時(shí)間
- Powershell小技巧之使用Get-ChildItem得到指定擴(kuò)展名文件