Powershell 设置数值格式 1
设置数值格式 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的更多相关文章
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
实际开发过程中通常用到的就是从数据库导出EXCEL表格了,JXL可以这样做,其实POI也可以(关于JXL与POI的异同可访问我之前总结的文章),之前写过POI对七种文档(当然也包括EXCEL)的内容读 ...
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
java日期格式大全 format SimpleDateFormat(转) SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH ...
- log_format为Nginx设置日志格式
nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式, 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,一般在nginx的配置文件中日记配置 ...
- .Net如何在后台设置日期格式,并显示在前台页面上
其实方法比较老咯,有比这个简单的朋友请留言哈,我的思路是先将数据库中的日期格式读出来,在后台转化成DatetTime类型,然后在使用DateTime的内部方法设置日期格式,代码如下: DateTime ...
- (转)MyEclipse设置注释格式
原文:http://xinghaifeng2006.iteye.com/blog/1243565 MyEclipse设置注释格式(转载) 博客分类: Java基础知识 Windo ...
- Java json设置时间格式,Jackson设置时间格式,json设置单引号
Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...
- 【SSRS】入门篇(五) -- 设置报表格式
原文:[SSRS]入门篇(五) -- 设置报表格式 在上一节 [SSRS]入门篇(四) -- 向报表添加数据 我们设置好了报表,并可以预览到数据,如下图: 当报表完成后,有个重要的工作就是美化报表格式 ...
- excel将百分比数据转为数值格式
由于于原给定的数据是百分比格式的, 所以先在excel中将数据格式改为数值 修改步骤: 单纯更改单元格格式为数值没用,先在空白单元格输入数值格式的1,复制该数字,选中要转换格式的数据, 右键 ---- ...
- (后端)excel设置日期格式的步骤
在excel中设置日期格式,分直接设置和代码设置. 一.直接设置: 选取日期所在的单元格,单元格右键菜单中--设置单元格格式.在单元格格式窗口中选数字类型为“日期”在右边的列表框中选取相应的日期格式即 ...
随机推荐
- 为什么使用Redis
原文地址:http://igoder.iteye.com/blog/1969848 先解释一下软件编程中常见的一些概念: 抽象先于具象.这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存 ...
- 【转】在ASP.NET MVC中,使用Bundle来打包压缩js和css
在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压缩(多个文件可以打包成一个文件),并且可以区分调试和非调试,在调试时不进行压缩,以原 ...
- 状态模式(State) 笔记
让一个对象随着内部的状态改变而发生改变. 状态的两种切换方式: 1) 完全交给Context类切换, 2) 给Context初始化状态,其他的切换根据每一个State类进行切换,Context对象不再 ...
- Centos6 下启动httpd报错 Could not reliably determine the server's解决方法
在启动httpd的时候报错: 修改/etc/httpd/conf/httpd.conf 配置,去掉ServerName 前的#(或者手动添加ServerName localhost:80)然后重启ht ...
- 解决IE9以下ie版本不能识别新元素的方法 添加一个js -- Shiv Solution
Thankfully, Sjoerd Visscher created the "HTML5 Enabling JavaScript", "the shiv": ...
- [Falcor] Building Paths Programmatically
model.setValue('genreList[0].titles[0].rating', 5) .then(function (value) { model.get('genreList[0.. ...
- POJ 2318 TOYS/POJ 2398 Toy Storage
计算几何终于开坑了... 叉积+二分. #include<iostream> #include<cstdio> #include<cstring> #include ...
- Java NIO框架Netty教程(一) – Hello Netty
先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解一下.我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序.具体能做什么,各位可以尽量发挥想象.技术,是 ...
- (转)在Repeater中嵌套使用Repeater
在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...
- 工厂方法模式(java 设计模式)
1.工厂方法模式的定义 工厂方法模式使用的频率非常高, 在我们日常的开发中总能见到它的身影. 其定义为:Define an interface for creating an object,but l ...