创建名称和日期+7天的文件夹结构

Posted

技术标签:

【中文标题】创建名称和日期+7天的文件夹结构【英文标题】:create a folder structure with name and date +7 days 【发布时间】:2021-08-26 12:18:10 【问题描述】:

我想创建一个以 W1 09-09-2021 开头的文件夹名称(这是文件夹的名称) 我希望第二个是 W2 + 7 天有没有办法批量创建?让我们说 6 个月? 问候

【问题讨论】:

是的,有可能;P 到目前为止,您尝试过什么? minimal reproducible example ?提示:(Get-Date 09-09-2021).AddDays(7) (Powershell) 您好,我尝试使用 mkdir 命令创建 w1 等,但找不到批量执行此操作的方法 :-( 你好,我找到了一种创建文件夹名称 mkdir $(1..20 | %"W$_") 的方法,但是如何在它旁边和文件夹上添加日期以添加 7天 你为什么使用一个除了你之外没人能确定格式的日期?是W$_ dd-MM-yyyy,还是W$_ MM-dd-yyyy?您能否还解释一下批处理文件与您的问题有何关系?因为您的上述评论清楚地表明您正在使用 powershell。也请不要将代码添加到 cmets,edit 您的问题以正确格式化。 从什么时候开始第 1 周从 09-09-2021 开始???? 【参考方案1】:

你可以使用这样的东西。可能会更压缩,但由于您是初学者,我相信如果我这样离开它会学到更多。

请记住使用应在其中创建新文件夹的目标完整路径更新$folderPath 变量。

$startDate = [datetime]'09-09-2021'
$endDate = $startDate.AddMonths(6)
$startWeek = 1
$folderPath = "X:\fullPath\to\newFolders"
$datesToExclude = @(
    '12-30-2021' # This will Exclude 30 of December 2021
) | ForEach-Object $_ -as [datetime]

do
   
    if($startDate -notin $datesToExclude)
    
        $folderName = "W0 1" -f $startWeek, $startDate.ToString('MM-dd-yyyy')
        $newFolderPath = Join-Path $folderPath -ChildPath $folderName
        New-Item $newFolderPath -ItemType Directory
    

    $startDate = $startDate.AddDays(7)
    $startWeek++

until($startDate -ge $endDate)

W1W26 的新文件夹应如下所示:

W1 09-09-2021
W2 09-16-2021
W3 09-23-2021
W4 09-30-2021
...
...
...
W24 02-17-2022
W25 02-24-2022
W26 03-03-2022

【讨论】:

如果我已经在正确的文件夹中,我应该放弃路径吗? @PierreAuger 如果您的当前目录与创建文件夹的位置相同,您可以将变量设置为dot,如下所示:$folderPath = "." 非常感谢,它工作得很好,我们可以排除一些要创建的日期,比如 12 月 30 日吗? 从 16 日开始的另一件事我希望第一个文件夹在 2021 年 9 月 9 日成为 w1 我尝试使用开始日期,但它一直从 16 日开始 非常感谢圣地亚哥

以上是关于创建名称和日期+7天的文件夹结构的主要内容,如果未能解决你的问题,请参考以下文章

Google云端硬盘,在特定文件夹中自动删除超过7天的文件

第七天 2020/7/12

如何从 S3 存储桶中仅读取最近 7 天的 csv 文件

如何使用 pkzipc 命令压缩超过 7 天的文件(即 *.t00 或 *.rf0 extn)?

根据文件名生成与日期相关的三天的文件

Oracle SQL:查找指定日期前 7 天的日期,不包括星期日和其他特定日期