使用日期等创建多个文件夹 190101 至 191231

Creating multiple folders with dates etc. 190101 to 191231

我正在尝试创建多个文件夹,但针对的是一年中的日期。 此外,我一直在使用 PowerShell 并尝试创建批处理脚本。 我尝试了几种解决方案,但没有一种能满足我的需求。 因此,我需要将 190101 到 191231 的文件夹创建为空一次,一整年。但是无论我做什么我都得不到我想要的。

示例:

01..31 | foreach $_{ New-Item -ItemType Directory -Name $("1901" + $_)}

mkdir $(01..31 | %{"ch$_"})

md(01..31|%{"1901$_"})

但是这里的问题是 "days" 他们没有给我 0 所以,我有 19011 而不是 190101。

我找不到如何提取日期并推动 PowerShell 来创建我需要的内容。

使用format operator (-f)。它正是为了这个目的而制作的。

1..31 | ForEach-Object {
    New-Item -Type Directory -Name ('1901{0:d2}' -f $_)
}

这里有一个稍微更通用的版本,适用于任何给定的月份。 -f 字符串格式运算符真的很方便... [grin]

$Today = (Get-Date).Date
$Year = $Today.Year
$Month = $Today.Month
$DaysInMonth = (Get-Culture).Calendar.GetDaysInMonth($Year, $Month)

foreach ($Day in 1..$DaysInMonth)
    {
    '{0}{1:D2}' -f $Today.ToString('yyMM'), $Day
    }

截断输出...

190101
190102
[*...snip...*] 
190130
190131

的每一天创建文件夹的一种方法
  • define/get 年份
  • 将开始日期设置为 1 月 1 日
  • 要获得从零开始的偏移量,请获取 12 月 30 日的 DayOfYear
  • 使用 AddDays 的范围作为开始日期并迭代

$year = (Get-Date).Year
$startdate = Get-Date -Year $year -Month 1 -Day 1
0..(Get-Date -Year $year -Month 12 -Day 30).DayOfYear| ForEach-Object{
  mkdir ($startdate.AddDays($_).ToString('yyMMdd')
)