【发布时间】:2009-02-24 16:56:55
【问题描述】:
我需要更改 Windows 上文件的修改日期,以免弄乱我的排序顺序。如何使用脚本来执行此操作(将来我可能还需要对文件执行此操作)?
顺便说一句:我不想安装应用程序来执行此操作。
【问题讨论】:
-
目前没有从命令行执行此操作的方法。如果您想编写代码来做到这一点,请表达出来。
标签: windows command-line
我需要更改 Windows 上文件的修改日期,以免弄乱我的排序顺序。如何使用脚本来执行此操作(将来我可能还需要对文件执行此操作)?
顺便说一句:我不想安装应用程序来执行此操作。
【问题讨论】:
标签: windows command-line
如果你有 PowerShell:
$(Get-Item ).creationtime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastaccesstime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
$(Get-Item ).lastwritetime=$(Get-Date "mm/dd/yyyy hh:mm am/pm")
请注意,要使用的正确日期格式字符串取决于您的本地化,例如在英国,正确的格式字符串是dd/mm/yyyy。
【讨论】:
Get-Item 之后的第一个( ) 中。我编辑了答案以反映这一点。我已经验证了这确实工作
nn/nn/yyyy,因为日期顺序不明确。 yyyy/mm/dd 也可以正常工作。
这是一个更改修改日期的 VBScript 示例:
Sub ChangeModifiedDate(strFolder, strFile, dteNew)
Dim oShell
Dim objFolder
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.NameSpace(strFolder)
oFolder.Items.Item(strFile).ModifyDate = dteNew
End Sub
【讨论】:
在 PowerShell 中,您可以列出文件并使用该文件在一行中设置其属性。
例如使用通配符:
(ls yourF*).lastWriteTime = (get-date).AddDays(-60)
对于单个文件:
(ls yourFile.doc).creationTime = (get-date).AddDays(-60)
(上面的命令假设你已经 cd'd 到文件的目录。)
【讨论】:
使用 Java 你可以做到:
File file = new File("someFile");
file.setLastModified(long time);
【讨论】: