我需要自动创建从2020年到2024年的每月文件夹。
例如,
-Jan -Feb . -Dec
-Jan . -Dec
-Jan . -Dec
一直到2024年。
我试过了我的密码-
$d = 1..12|%{(get-date).AddMonths(-6+$_).ToString("MMM yyyy")}
$d | % {(new-Item -Path C:\testmonth\$_ -ItemType Directory)}我想知道是否有一个更好的编码自动创建每月文件夹。
非常感谢的人
发布于 2022-06-06 09:34:53
为此,我将使用一个简单的嵌套循环:
$Path = 'C:\testmonth'
$Months = [CultureInfo]::CurrentCulture.DateTimeFormat.AbbreviatedMonthNames
for ($y = 2020; $y -lt 2025; $y++) {
for ($m = 0; $m -lt 12; $m++) {
$folder = Join-Path -Path $Path -ChildPath ('{0}\{1}' -f $y, $Months[$m])
$null = New-Item -Path $folder -ItemType Directory -Force
}
}发布于 2022-06-06 12:34:39
foreach ($year in 2020..2024)
{
foreach ($month in 1..12)
{
$mon = Get-Date -Date $year-$month -Format "MMM"
mkdir $year\$mon -Force
}
}mkdir -Force将使父文件夹和子文件夹一举完成。
发布于 2022-06-06 06:46:37
首先,你也需要循环几年。那就这么多年吧。
$y = 1..4 | ForEach-Object { (get-date).AddYears(-1+$_).ToString("yyyy") }原谅我强迫改变%=形式对象。欢迎你把它改回来。
那就像你那样过几个月吧。
$d = 1..12| ForEach-Object { (get-date).AddMonths(-6+$_).ToString("MMM") } 现在你需要循环几年和几个月。诀窍是在使用$_ (当前月份)循环天数之前存储年份(当前值)。
看起来是这样的。
$y | ForEach-Object {
$currentYear = $_
(new-Item -Path C:\testmonth\$_ -ItemType Directory)
$d | ForEach-Object {(new-Item -Path C:\testmonth\$currentYear\$_ -ItemType Directory)}}
https://stackoverflow.com/questions/72513840
复制相似问题