将Word创建日期提取到文件名中

德泰

我有一些Word文档,其创建日期(docdocx都不同我想重命名文件以包含此创建日期。这可能吗?这不是文件系统的最后修改日期,这是内部Word创建日期,可在File->Info->PropertiesWord内部查看

例如,我想将文档重命名Summary meeting 123.doc123 2010-01-01 Summary meeting 123123部分可以通过简单的正则表达式来实现,但是如何获取文件创建日期呢?

另一个解决方案是将文件系统的最后修改日期设置为内部单词创建日期。

马丁

使用此PowerShell脚本:(位于此处:http : //blogs.technet.com/b/heyscriptingguy/archive/2012/08/02/use-powershell-to-find-specific-word-built-in-properties。 aspx

Edit2:编辑了脚本以匹配您的特定方案。

Param(
    $path = "Q:\Test",  
    [array]$include = @("*.docx","*.docx")
)

$application = New-Object -ComObject word.application
$application.Visible = $false
$binding = "System.Reflection.BindingFlags" -as [type]
[ref]$SaveOption = "microsoft.office.interop.word.WdSaveOptions" -as [type]

## Get documents
    $docs = Get-childitem -path $Path -Recurse -Include $include    #Remove -Recurse if you dont want to include subfolders.

## Iterate documents
foreach($doc in $docs)
{
    try 
    {
        ## Get document properties:
            $document = $application.documents.open($doc.fullname)
            $BuiltinProperties = $document.BuiltInDocumentProperties
            $pn = [System.__ComObject].invokemember("item",$binding::GetProperty,$null,$BuiltinProperties,"Creation Date") 
            $value = [System.__ComObject].invokemember("value",$binding::GetProperty,$null,$pn,$null)

        ## Clean up
            $document.close([ref]$saveOption::wdDoNotSaveChanges) 
            [System.Runtime.InteropServices.Marshal]::ReleaseComObject($BuiltinProperties) | Out-Null
            [System.Runtime.InteropServices.Marshal]::ReleaseComObject($document) | Out-Null
            Remove-Variable -Name document, BuiltinProperties

        ## Rename document:
            if($doc.PSChildName -match "^(.+)(\d{3})(.+)$")  # Matches "(Summary meeting )(123)(.doc)"
            { 
                $date=$value.ToString('yyyy-MM-dd');
                $newName = "$($matches[2]) $($date) $($matches[1])$($matches[2])$($matches[3])";
                write-host $newName;
                Rename-Item $doc $newName
            }   
    }
    catch
    { 
        write-host "Rename failed."
            $_
    } 
}
## Clean up
    $application.quit()
    [System.Runtime.InteropServices.Marshal]::ReleaseComObject($application) | Out-Null
    Remove-Variable -Name application
    [gc]::collect()
    [gc]::WaitForPendingFinalizers()

将$ path-variable更改为文档所在的文件夹。

使用您需要的任何其他逻辑来编辑#Rename部分,我添加的正则表达式与您在帖子中提供的特定示例匹配,对其进行调整以使其与您的所有文档匹配。可以使用“ matches []”数组(从索引1开始)来引用(括号)内的任何模式。

我建议注释掉“ Rename-Item”行,直到您确定“ $ newName”是正确的。在“ $ newName =”行中的变量周围添加了额外的$(),以便变量将扩展。

PS: 确保启用powershell脚本运行,以管理员身份打开PS,然后输入:“ Set-ExecutionPolicy RemoteSigned”)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从文件名中的日期设置创建日期

来自分类Dev

从文件名中提取日期并创建一个新列,并在Python中自动填充该日期

来自分类Dev

将创建日期添加到SystemVerilog中的文件名中

来自分类Dev

Excel VBA宏将文件名提取到自动电子邮件的正文中

来自分类Dev

当日期字段中的值为NULL时,创建SSIS包以将单词“ NULL”提取到Excel文件

来自分类Dev

通过从文件名中提取日期,将日期添加到数据框列表中

来自分类Dev

搜索字符串/单词,文件名并使用fso提取到新表中

来自分类Dev

从文件名PHP中提取日期

来自分类Dev

从文件名PHP中提取日期

来自分类Dev

Powershell:将昨天的日期放在文件名中

来自分类Dev

将日期合并到文件名中

来自分类Dev

在文件名上附加创建日期

来自分类Dev

将跳过的文件名获取到Excel工作表中

来自分类Dev

tar:将单个文件提取到目录中而不创建子文件夹

来自分类Dev

创建子目录并根据文件名中的日期按日期组织文件

来自分类Dev

如何使用 SAS 中数据文件名中的日期创建日期字段?

来自分类Dev

提取R中的日期和时间以包含在文件名中

来自分类Dev

提取R中的日期和时间以包含在文件名中

来自分类Dev

根据文件在R中保存的日期提取文件名

来自分类Dev

从文件名可变的文件中提取日期

来自分类Dev

如何将文件的创建日期批量添加到文件名?

来自分类Dev

提取文件名

来自分类Dev

如何在 for 循环中(在 python 中)从 word 文档的文件名中提取特定名称?

来自分类Dev

使用Shell脚本从UNIX中的文件名中提取日期

来自分类Dev

Python:按创建日期或文件名中的编号列出目录中的XML文件

来自分类Dev

根据文件名中的日期将文件排序到文件夹中?

来自分类Dev

更改文件名中的日期格式

来自分类Dev

从CSH脚本的文件名中提取日期?

来自分类Dev

从CSH脚本的文件名中提取日期?

Related 相关文章

  1. 1

    从文件名中的日期设置创建日期

  2. 2

    从文件名中提取日期并创建一个新列,并在Python中自动填充该日期

  3. 3

    将创建日期添加到SystemVerilog中的文件名中

  4. 4

    Excel VBA宏将文件名提取到自动电子邮件的正文中

  5. 5

    当日期字段中的值为NULL时,创建SSIS包以将单词“ NULL”提取到Excel文件

  6. 6

    通过从文件名中提取日期,将日期添加到数据框列表中

  7. 7

    搜索字符串/单词,文件名并使用fso提取到新表中

  8. 8

    从文件名PHP中提取日期

  9. 9

    从文件名PHP中提取日期

  10. 10

    Powershell:将昨天的日期放在文件名中

  11. 11

    将日期合并到文件名中

  12. 12

    在文件名上附加创建日期

  13. 13

    将跳过的文件名获取到Excel工作表中

  14. 14

    tar:将单个文件提取到目录中而不创建子文件夹

  15. 15

    创建子目录并根据文件名中的日期按日期组织文件

  16. 16

    如何使用 SAS 中数据文件名中的日期创建日期字段?

  17. 17

    提取R中的日期和时间以包含在文件名中

  18. 18

    提取R中的日期和时间以包含在文件名中

  19. 19

    根据文件在R中保存的日期提取文件名

  20. 20

    从文件名可变的文件中提取日期

  21. 21

    如何将文件的创建日期批量添加到文件名?

  22. 22

    提取文件名

  23. 23

    如何在 for 循环中(在 python 中)从 word 文档的文件名中提取特定名称?

  24. 24

    使用Shell脚本从UNIX中的文件名中提取日期

  25. 25

    Python:按创建日期或文件名中的编号列出目录中的XML文件

  26. 26

    根据文件名中的日期将文件排序到文件夹中?

  27. 27

    更改文件名中的日期格式

  28. 28

    从CSH脚本的文件名中提取日期?

  29. 29

    从CSH脚本的文件名中提取日期?

热门标签

归档