修改文件属性信息的方法

本文最后更新于 2024年2月7日 晚上

本文主要分享了修改文件-属性中信息的方法。

文档属性信息

来源

  • 作者:创建最原版文件的作者。可直接在属性面板修改。
  • 修订号:这个文件一共打开修改过几次,文件被复制粘贴后保留原文件的修订号并继续累加。可直接在属性面板修改。
  • 创建内容的时间:最原版文件的创建日期,文件复制粘贴后仍保留最原版文件的创建日期。需要设法修改。
  • 最后一次保存的日期:文件复制粘贴后如果没有经过修改则保留最原版文件的修改日期,如果被修改则为当前日期。
  • 总编辑时间:文件被复制粘贴后保留原文件的总编辑时间并继续累加。需要设法修改。

文件:

  • 创建日期:文件被复制粘贴或者从压缩包解压出来时的创建日期,与创建内容的时间(对应文件最原版的创建时间)区分开。
  • 修改日期:新文件的修改日期(更新有延迟)。
  • 访问日期:新文件的最后一次打开的日期(更新有延迟)。

修改Office文档的属性-详细信息-创建内容的时间等

参考链接

  1. 备份一下防止修改错了。
  2. 将副本扩展名改为.zip.rar,然后鼠标双击压缩包直接用Bandizip或其他压缩软件打开(注意:不要解压,解压后再压缩,再改扩展名为.docx,用Word打不开,说是损坏了)。
  3. 解压后有3个文件夹和一个.xml文件(.xml自己百度去,一种web语言),打开docProps文件夹,有一个core.xml文件。
  4. core.xml无法在压缩包里直接修改,单独将core.xml拖放到外面,用记事本打开,很容易发现那里是创建时间,最后一次修改时间,打印时间(可以打开这个word文件,看一下属性,与core.xml中时间比较,就知道是哪个时间了)修改成想要的时间,保存。
  5. 在双击打开的压缩包里直接删除掉原来的core.xml(Bandizip工具栏-删除),然后将外面修改过的core.xml文件添加到原位置(Bandizip工具栏-添加)。
  6. 将改了扩展名的副本(也可以改原本)扩展名重新改回.docx
  7. 查看属性是否已经修改好了。
  8. 使用Word打开,确保文件完好。

注:我将打印那一栏的整个标签删了,改完用Word打开后,打印属性显示“从不”。修改其他属性也可以用类似方法,有的在Word可以直接改就不用这么麻烦了。

修改文件的作者

  1. 文件-属性-详细信息-来源-作者,直接删除掉原作者,添加新作者。

修改文件创建、修改和访问日期等

修改单个文件

参考链接

  1. 在文件所在文件夹内按住Shift鼠标右键点击空白位置,选择“在此处打开PowerShell窗口”

,或者直接打开PowerShell窗口。

  1. 使用以下命令获取文件属性信息:

    1
    2
    3
    Get-ItemProperty -Path 文件的相对或绝对路径 | Format-list -Property * -Force
    # 示例
    Get-ItemProperty -Path D:\test\test.txt | Format-list -Property * -Force
  2. 执行命令,修改文件属性:

    1
    2
    3
    Set-ItemProperty -Path D:\test\test.txt -Name LastWriteTime -Value "2020-08-19 11:33:44"
    # LastWriteTime是要修改的文件属性名称
    # "2020-08-19 11:33:44" 是修改后的值
  3. 文件-右键-属性,检查文件信息是否已经修改好了。

使用.bat文件实现批量修改

在 Windows 10 上,批处理文件是一种特殊的文本文件,通常具有.bat 扩展,它包含一个或多个命令,命令提示符可以理解并依次运行以执行各种操作。

参考链接

  1. 新建一个.bat文件,在其中添加语句:

    1
    2
    3
    @ECHO OFF
    powershell.exe -command "ls 'folder_path\*.dll' | foreach-object { $_.LastWriteTime = Get-Date; $_.CreationTime = Get-Date }"
    PAUSE

    其中:

    • ECHO OFF:禁用显示提示符,以便在命令行上只显示返回的文本信息。通常,这一行放在文件的开头。(您可以在不使用“@”的情况下使用该命令,但是符号隐藏了正在执行的命令以创建一个更清晰的返回。)
    • -command: tells powershell to run the following command and return immediately
    • ls: list all matching files at the path specified
    • foreach-object: run the following block on each file that ls found
    • $_.LastWriteTime = Get-Date: for each file, set the LastWriteTime to the value returned by Get-Date (today’s date and time)
    • $_.CreationTime = Get-Date: for each file, set the CreationTime to the value returned by Get-Date (today’s date and time)
    • PAUSE:在执行命令后保持窗口打开。如果不使用此命令,则脚本运行完毕后,窗口将自动关闭。当运行多个任务并且希望在它们之间暂停时,可以在脚本末尾或在特定命令之后使用此命令。
      1. 如需指定时间,而不是当前电脑系统的时间,将命令中的Get-Date改为'01/11/2004 22:13:36'
      2. 修改指定文件'folder_path\test.dll',修改指定拓展名文件'folder_path\*.dll';修改文件夹内全部文件'folder_path\*.*'(应该是对的吧?)。
  2. 递归文件夹中所有文件:

    1
    2
    3
    @ECHO OFF
    powershell.exe -command "Get-Childitem -path 'E:\project_llj\install\test\' -Recurse | foreach-object { $_.LastWriteTime = Get-Date; $_.CreationTime = Get-Date }"
    PAUSE
  3. 双击运行.bat文件(使用记事本打开可编辑)。

其它

  1. macOS、Linux和Windows上的修改属性的其它方法

  2. Windows上修改文件时间的工具:NewFileTime


修改文件属性信息的方法
http://zeyulong.com/posts/1e805a22/
作者
龙泽雨
发布于
2024年2月7日
许可协议