1

我有一个脚本,可以将文件重命名为用户在键盘上输入的日期——这很简单,只需要输入月份、日期和年份。只要用户输入 2 位数的值,它就可以很好地工作......问题是有时用户没有输入前导 0,然后整个事情就崩溃了。如何确保包含前导 0?到目前为止,这是我所拥有的:

    $BatchDay = $(read-host "Enter Day of Month")
    if ($BatchDay -eq ''){$BatchDay = Get-Date -format dd}
    $BatchMonth = $(read-host "Enter Month of Year")
    if ($BatchMonth -eq ''){$BatchMonth = Get-Date -format MM}
    $BatchYear = $(read-host "Enter Year")
    if ($BatchYear -eq ''){$BatchYear = Get-Date -format yy}

然后它连接数字来构建文件名:

    $Filename = "Customer--$BatchMonth-$BatchDay-$BatchYear($BatchNum).txt"

即使天数和月份只有一位数,如何强制变量为两位数?

谢谢!

4

2 回答 2

3

您可以创建格式化 vars 的文件名:

$a = ("{0:00}-{1:00}" -f 1,2)

01-02

在你的情况下:

$Filename = ("Customer--{0:00}-{1:00}-{2:00}({3:00}).txt" -f $BatchMonth,$BatchDay,$BatchYear,$BatchNum)
于 2013-01-14T20:32:16.837 回答
2

试试这个:

$Filename = 'Customer--{0:00}-{1:00}-{2:00}({3}).txt' -f $BatchMonth, $BatchDay, $BatchYear, $BatchNum
于 2013-01-14T20:34:09.233 回答