修改文件属性信息的方法
本文最后更新于 2024年2月7日 晚上
本文主要分享了修改文件-属性中信息的方法。
文档属性信息
来源
- 作者:创建最原版文件的作者。可直接在属性面板修改。
- 修订号:这个文件一共打开修改过几次,文件被复制粘贴后保留原文件的修订号并继续累加。可直接在属性面板修改。
- 创建内容的时间:最原版文件的创建日期,文件复制粘贴后仍保留最原版文件的创建日期。需要设法修改。
- 最后一次保存的日期:文件复制粘贴后如果没有经过修改则保留最原版文件的修改日期,如果被修改则为当前日期。
- 总编辑时间:文件被复制粘贴后保留原文件的总编辑时间并继续累加。需要设法修改。
文件:
- 创建日期:文件被复制粘贴或者从压缩包解压出来时的创建日期,与创建内容的时间(对应文件最原版的创建时间)区分开。
- 修改日期:新文件的修改日期(更新有延迟)。
- 访问日期:新文件的最后一次打开的日期(更新有延迟)。
修改Office文档的属性-详细信息-创建内容的时间等
- 备份一下防止修改错了。
- 将副本扩展名改为
.zip
或.rar
,然后鼠标双击压缩包直接用Bandizip或其他压缩软件打开(注意:不要解压,解压后再压缩,再改扩展名为.docx
,用Word打不开,说是损坏了)。 - 解压后有3个文件夹和一个
.xml
文件(.xml
自己百度去,一种web语言),打开docProps
文件夹,有一个core.xml
文件。 core.xml
无法在压缩包里直接修改,单独将core.xml
拖放到外面,用记事本打开,很容易发现那里是创建时间,最后一次修改时间,打印时间(可以打开这个word文件,看一下属性,与core.xml
中时间比较,就知道是哪个时间了)修改成想要的时间,保存。- 在双击打开的压缩包里直接删除掉原来的
core.xml
(Bandizip工具栏-删除),然后将外面修改过的core.xml
文件添加到原位置(Bandizip工具栏-添加)。 - 将改了扩展名的副本(也可以改原本)扩展名重新改回
.docx
, - 查看属性是否已经修改好了。
- 使用Word打开,确保文件完好。
注:我将打印那一栏的整个标签删了,改完用Word打开后,打印属性显示“从不”。修改其他属性也可以用类似方法,有的在Word可以直接改就不用这么麻烦了。
修改文件的作者
- 文件-属性-详细信息-来源-作者,直接删除掉原作者,添加新作者。
修改文件创建、修改和访问日期等
修改单个文件
- 在文件所在文件夹内按住Shift鼠标右键点击空白位置,选择“在此处打开PowerShell窗口”
,或者直接打开PowerShell窗口。
-
使用以下命令获取文件属性信息:
1
2
3Get-ItemProperty -Path 文件的相对或绝对路径 | Format-list -Property * -Force
# 示例
Get-ItemProperty -Path D:\test\test.txt | Format-list -Property * -Force -
执行命令,修改文件属性:
1
2
3Set-ItemProperty -Path D:\test\test.txt -Name LastWriteTime -Value "2020-08-19 11:33:44"
# LastWriteTime是要修改的文件属性名称
# "2020-08-19 11:33:44" 是修改后的值 -
文件-右键-属性,检查文件信息是否已经修改好了。
使用.bat文件实现批量修改
在 Windows 10 上,批处理文件是一种特殊的文本文件,通常具有.bat 扩展,它包含一个或多个命令,命令提示符可以理解并依次运行以执行各种操作。
-
新建一个
.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 immediatelyls
: list all matching files at the path specifiedforeach-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
:在执行命令后保持窗口打开。如果不使用此命令,则脚本运行完毕后,窗口将自动关闭。当运行多个任务并且希望在它们之间暂停时,可以在脚本末尾或在特定命令之后使用此命令。- 如需指定时间,而不是当前电脑系统的时间,将命令中的
Get-Date
改为'01/11/2004 22:13:36'
。 - 修改指定文件
'folder_path\test.dll'
,修改指定拓展名文件'folder_path\*.dll'
;修改文件夹内全部文件'folder_path\*.*'
(应该是对的吧?)。
- 如需指定时间,而不是当前电脑系统的时间,将命令中的
-
递归文件夹中所有文件:
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 -
双击运行
.bat
文件(使用记事本打开可编辑)。
其它
-
Windows上修改文件时间的工具:NewFileTime
修改文件属性信息的方法
http://zeyulong.com/posts/1e805a22/