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"

日と月が 1 桁しかない場合でも、変数を強制的に 2 桁にするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

3

あなたはあなたの変数をフォーマットするあなたのファイル名を作成することができます:

$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 に答える