• 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)
  • 相关阅读:
    Error_OAF_the descriptive flexfield with application name payables and name is not frozen
    Error_OAF_Flex VO() of flex bean (ExpenseDescFlexs) is null (异常)
    AME_Oracle自带AME审批链详解AME Standard Handler(概念)
    PS_Form个性化复杂需求新增Menu并调用Request(案例)
    PS_Form个性化选择Block自动查询和查询条件排序实现(案例)
    Error_Unix Shell_syntax error near unexpected token `fi'
    PLSQL_性能优化效能跟踪工具DBMS_PROFILER分析(案例)
    Workflow_工作流的基本元素(概念)
    Form_如何通过标准功能查找数据源(概念)
    Report_SRW工具的基本用法(概念)
  • 原文地址:https://www.cnblogs.com/micro-chen/p/5807871.html
Copyright © 2020-2023  润新知