欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Powershell小技巧之使用-F方法带入数据

程序员文章站 2022-11-15 17:49:02
封闭在双引号中的字符串能够直接使用变量,这是常用的手法,如代码: $name = $host.name "your host is called $name....

封闭在双引号中的字符串能够直接使用变量,这是常用的手法,如代码:

$name = $host.name 
"your host is called $name."

可是这个技巧也有限制。如果你想要显示对象的属性而不是这个变量的本身,例如这样将会失败:

ps> "your host is called $host.name."
your host is called system.management.automation.internal.host.internalhost.name.

这是因为ps仅能解决变量的本身(如$host),而不支持它的属性。

同时你也不能控制数字的格式,执行下面代码,结果看起来有很多位数字:

# 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."

这里有一个 -f 方法能同时解决这些问题。只需要将它放在模版文本的左边,它的值就会被正确的带入:

# 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

现在你看,使用-f让你有两个有利条件:这里带括号的占位符指出了带入参数的起始位置,同时它还接受格式。“n1”代表保留1位小数。可以改变它来满足你的需求。

支持ps所有版本