设置数值格式 1


格式化操作符 -f 可以将数值插入到字符串,每一个通配符都有统一的结构。

{index[,alignment][:format]}:

  •  Index:

索引编号用来识别把那个值用来替换通配符。例如你可能使用了多个通配符,或者同一个通配符使用了多次,甚至多种格式。此时,索引编号是唯一能够识别那个值将用来替换。另外两个选项Alignment和Format则作为辅助条件

  • Alignment:

正数和负数,可以指定目标值是否左对齐或者右对齐。还可以支持数值以指定的宽度显示,如果数值的实际宽度大于指定宽度,则忽略指定宽度。如果数值宽度小于指定宽度,剩余的部分会以空白填充,这一选项非常利于制表。

  • Format:

数值可以被格式化成许多不同的类型,下面会预览这些你可能会用到一些格式概要。

格式化语句比较特殊,大小写敏感,这和PowerShell中其它语句的使用稍有不同。下面举个例子:

# 使用小写字母d:格式化
"Date: {0:d}" -f (Get-Date)
 
Date: 2013/5/31
 
# 使用大写字母D:格式化
"Date: {0:D}" -f (Get-Date)
Date: 2013年5月31

符号

类型

调用示例

输入结果

#

数字占位符

“{0:(#).##}” -f $value

(1000000)

%

百分号

“{0:0%}” -f $value

100000000%

,

千分符

“{0:0,0}” -f $value

1,000,000

,.

一千的整数倍

“{0:0,.} ” -f $value

1000

.

小数点

“{0:0.0}” -f $value

1000000.0

0

占位符 0

“{0:00.0000}” -f

$value

1000000.0000

c

货币

“{0:c}” -f $value

¥1,000.00

d

十进制

“{0:d}” -f $value

1000000

e

科学计数法

“{0:e}” -f $value

1.000000e+006

e

指数通配符

“{0:00e+0}” -f $value

10e+5

f

保留小数位

“{0:f}” -f $value

1000000.00

g

常规

“{0:g}” -f $value

1000000

n

千分符

“{0:n}” -f $value

1,000,000.00

x

十六进制

“0x{0:x4}” -f $value

0x4240

使用上面表格中,你可以快速并舒服地格式化数值,例如千分符的使用可以让用户避免去纠结,1后面到底跟了几个0,是10万呢,还是100万。

另外PowerShell还提供了非常丰富的日期格式化选项,相关的格式见下表。

符号

类型

调用示例

输出

d

短日期格式

“{0:d}” –f $value

2013/6/1

D

长日期格式

“{0:D}” –f $value

2013年6月1日

t

短时间格式

“{0:t}” –f $value

“{0:t}” –f $value

T

长时间格式

“{0:T}” –f $value

23:18:50

f

完整日期和时间(短)

“{0:f}” –f $value

2013年6月1日 23:18

F

完整日期和时间(长)

“{0:F}” –f $value

2013年6月1日 23:18:50

g

标准时间 (短)

“{0:g}” –f $value

2013/6/1 23:18

G

标准时间长 (长)

“{0:G}” –f $value

2013/6/1 23:18:50

M

月日格式

“{0:M}” –f $value

6月1日

r

RFC1123 日期格式

“{0:r}” –f $value

Sat, 01 Jun 2013 23:18:50 GMT

s

排序日期格式

“{0:s}” –f $value

2013-06-01T23:18:50

u

通用日期格式

“{0:u}” –f $value

2013-06-01 23:18:50Z

U

通用排序日期 GMT格式

“{0:U}” –f $value

2013年6月1日 15:18:50

Y

年/月格式模式

“{0:Y}” –f $value

2013年6月

自定义日期格式

dd

一个月中天

“{0:dd}” -f $value

01

ddd

星期的缩写

“{0:ddd}” -f $value

周六

dddd

完整星期

“{0:dddd}” -f $value

星期六

gg

纪年法

“{0:gg}” -f $value

公元

hh

小时0-12

“{0:hh}” -f $value

11

HH

小时0-23

“{0:HH}” -f $value

23

mm

分钟

“{0:mm}” -f $value

18

MM

月份

“{0:MM}” -f $value

06

MMM

月份缩写

“{0:MMM}” -f $value

六月

MMMM

完整月份

“{0:MMMM}” -f $value

六月

ss

“{0:ss}” -f $value

55

tt

上午或者下午

“{0:tt}” -f $value

下午

yy

两位数字的年份

“{0:yy}” -f $value

13

yyyy

四位数字的年份

“{0:yyyy}” -f $value

2013

zz

不包含分钟的时区

“{0:zz}” -f $value

+08

zzz

包含分钟的时区

“{0:zzz}” -f $value

+08:00

下面看一个例子:

$date= Get-Date
Foreach ($format in "d","D","f","F","g","G","m","r","s","t","T", `
"u","U","y","dddd, MMMM dd yyyy","M/yy","dd-MM-yy") {
"PowerShell 日期格式, 使用 $format : {0}" -f $date.ToString($format) }

输出:

PowerShell 日期格式,使用 d : 2013/6/6
PowerShell 日期格式,使用 D : 2013年6月6日
PowerShell 日期格式,使用 f : 2013年6月6日 0:13
PowerShell 日期格式,使用 F : 2013年6月6日 0:13:05
PowerShell 日期格式,使用 g : 2013/6/6 0:13
PowerShell 日期格式,使用 G : 2013/6/6 0:13:05
PowerShell 日期格式,使用 m : 6月6日
PowerShell 日期格式,使用 r : Thu, 06 Jun 2013 00:13:05 GMT
PowerShell 日期格式,使用 s : 2013-06-06T00:13:05
PowerShell 日期格式,使用 t : 0:13
PowerShell 日期格式,使用 T : 0:13:05
PowerShell 日期格式,使用 u : 2013-06-06 00:13:05Z
PowerShell 日期格式,使用 U : 2013年6月5日 16:13:05
PowerShell 日期格式,使用 y : 2013年6月
PowerShell 日期格式,使用 dddd, MMMM dd yyyy : 星期四, 六月 06 2013
PowerShell 日期格式,使用 M/yy : 6/13
PowerShell 日期格式,使用 dd-MM-yy : 06-06-13

如果你想找出那些类型支持被格式化选项,只须查找.NET中那些类型支持多余的ToString()方法.

[appdomain]::currentdomain.getassemblies() | ForEach-Object {
$_.GetExportedTypes() | Where-Object {! $_.IsSubclassof([System.Enum])}
} | ForEach-Object {
$Methods = $_.getmethods() | Where-Object {$_.name -eq "tostring"} |%{"$_"};
If ($methods -eq "System.String ToString(System.String)") {
$_.fullname
}
}

输出:

System.Enum
System.DateTime
System.Byte
System.Convert
System.Decimal
System.Double
System.Guid
System.Int16
System.Int32
System.Int64
System.IntPtr
System.SByte
System.Single
System.UInt16
System.UInt32
System.UInt64
Microsoft.PowerShell.Commands.MatchInfo

例如,其中的数据类型 ”全球唯一标示符”:

System.Guid

因为你会经常使用到它,它是全球通用的,下面会给你一个简单的例子来创建GUID。

PS > $guid = [GUID]::NewGUID()
PS > Foreach ($format in "N","D","B","P") {
>> "GUID with $format : {0}" -f $GUID.ToString($format)}
>>
GUID with N : e1a5d98f4227470b84c2b37a6a8fb894
GUID with D : e1a5d98f-4227-470b-84c2-b37a6a8fb894
GUID with B : {e1a5d98f-4227-470b-84c2-b37a6a8fb894}
GUID with P : (e1a5d98f-4227-470b-84c2-b37a6a8fb894)

Powershell 设置数值格式 1的更多相关文章

  1. POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】

    实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读 ...

  2. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

    java日期格式大全 format SimpleDateFormat(转) SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH ...

  3. log_format为Nginx设置日志格式

    nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式, 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,一般在nginx的配置文件中日记配置 ...

  4. .Net如何在后台设置日期格式,并显示在前台页面上

    其实方法比较老咯,有比这个简单的朋友请留言哈,我的思路是先将数据库中的日期格式读出来,在后台转化成DatetTime类型,然后在使用DateTime的内部方法设置日期格式,代码如下: DateTime ...

  5. (转)MyEclipse设置注释格式

    原文:http://xinghaifeng2006.iteye.com/blog/1243565 MyEclipse设置注释格式(转载)          博客分类: Java基础知识   Windo ...

  6. Java json设置时间格式,Jackson设置时间格式,json设置单引号

    Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...

  7. 【SSRS】入门篇(五) -- 设置报表格式

    原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...

  8. excel将百分比数据转为数值格式

    由于于原给定的数据是百分比格式的, 所以先在excel中将数据格式改为数值 修改步骤: 单纯更改单元格格式为数值没用,先在空白单元格输入数值格式的1,复制该数字,选中要转换格式的数据, 右键 ---- ...

  9. (后端)excel设置日期格式的步骤

    在excel中设置日期格式,分直接设置和代码设置. 一.直接设置: 选取日期所在的单元格,单元格右键菜单中--设置单元格格式.在单元格格式窗口中选数字类型为“日期”在右边的列表框中选取相应的日期格式即 ...

随机推荐

  1. VS013的单元测试去哪里了

    需要安装这个插件 http://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df-8cff-165b505a38d7

  2. Java如何让异常处理机制更完备规范

    1)catch的Exception一定要详细的点名是某种异常而非一概而论的用Exception ex来接收所有的异常,往往不理解这点的人也不能很好的理解catch的意义到底在哪里,是对捕获的异常进行一 ...

  3. 关于phpmyadmin中添加外键的做法

    今天想加个外键,又不想用命令行,打开PHPMYADMIN看怎么弄,找了半天没有找到添加外键的地方,然后上网搜了一会,发现目前的PHPMYADMIN确实没有这个设置,所以只能手动命令行添加了.   语法 ...

  4. hdu 1253 胜利大逃亡 (三维简单bfs+剪枝)

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  5. 华为OJ:2041 放苹果

    这道题难点不在于代码怎么写,而是思路怎么想. 感觉一般这样的题要么你理好一个思路要么你最后总结出一个公式,要么你自己模拟它的运作方式,用迭代,或者递归的方式来做. 有点像我们曾经学的排列组合. 对于m ...

  6. Linux内核如何启动并装载一个可执行程序

    2016-04-07 张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000#/info 一.理解编译链接的 ...

  7. eclipse打包 jar文件,中文乱码解决方案

    直接通过eclipse浏览源代码时,发现中文注释为乱码的问题.其实这个eclipse默认编码造成的问题.可以通过以下方法解决: 修改Eclipse中文本文件的默认编码:windows->Pref ...

  8. ansible 学习与实践

    title: ansible 学习与实践 date: 2016-05-06 16:17:28 tags: --- ansible 学习与实践 一 介绍 ansible是新出现的运维工具是基于Pytho ...

  9. 前端 HTML基础

    前端三大利器概述 学习前端,不得不学习前端中的三大利器:html + css + javascript.那么这三个组件分别起到什么作用呢?以人体为例,单单具有html属性的人,只是一个裸体的人偶(理解 ...

  10. 小学生之Log4j使用教程

    以前都是把所有日志都输出到一个文件下面,今天有个同事问想把某个包下的日志输出到 指定的地方,于是就在网上查了一些资料,总结一下,以免以后用到. 一.log4j是什么?  Log4j是一个开源的日志记录 ...