获取文件并在某些文件夹上复制和重命名多次

时间:2018-03-30 11:15:46

标签: powershell

我有一个文件(blank.xls),我想多次复制并重命名为以下格式:

1 - 4月\ 01042018.xls 1 - 4月\ 02042018.xls ... 12 - 3月\ 31032019.xls

理想情况下也应该创建文件夹。

我不介意每个月都有一个最多31个文件,因为这很容易删除。

我试过和Powershell一起玩,但这不是我的强项 - 如果可能的话,我只是在寻找正确方向的指针?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

你可以试试这个。文件和文件夹创建在与模板文件相同的文件夹中。

$startdate = [datetime]"04/01/2018"
$untildate = [datetime]"04/01/2019" #Untildate NOT included
$template = Get-Item "D:\Test\blank.xlsx"

$duration = $untildate - $startdate

for ($i = 0; $i -lt $duration.Days; $i++) {

    #Compute new name/path
    $d = $startdate.AddDays($i)
    $month = ($d.Month - $startdate.Month) + 12 * ($d.Year - $startdate.Year) + 1
    $newpart = "{0} - {1}" -f $month, $d.ToString("MMM\\ddMMyyyy", [cultureinfo]::InvariantCulture)
    $NewFilePath = $template.FullName.Replace($template.BaseName,$newpart)

    #Create new copy of template
    try {
        $template | Copy-Item -Destination $NewFilePath
    } catch [System.IO.DirectoryNotFoundException] {
        #Folder is missing, create destination and retry
        New-Item -Path (Split-Path -Path $NewFilePath) -ItemType Container > $null
        $template | Copy-Item -Destination $NewFilePath
    }

}