如何更改(一个/多个)文本文件的创建日期,然后在复制到另一台计算机时保留它

如何更改(一个/多个)文本文件的创建日期,然后在复制到另一台计算机时保留它

我有几个文本文件,我想更改这些文件的创建日期。我遇到了几个问题,因此希望得到针对我的情况的建议。

首先我发现此解决方案更改创建日期文件。它涉及运行 powershell (windows 10)

 (Get-Item test2.txt).creationtime=$(Get-Date "1/2/2016 12
:34 am")

它有效。所以我有两个问题。首先,如何对一千个文件执行此操作?它必须自动化,否则会花费太多时间。

但是第二个问题更为重要。一旦我更改了此文件的创建日期,如果我将其复制到另一个位置,则复制的文件的创建日期将恢复为今天。更糟糕的是,我必须将这 10000 个文件(其创建日期已更改)复制到 Windows 7 系统,并且这些文件的创建日期仍为旧日期。但是,如果它们要恢复到今天,而我又没有 Powershell,我该如何解决我的问题?

答案1

您所需的所有答案都在 PowerShell 帮助文件中。

# Get a list of all functions
Get-Command -CommandType Function | 
Out-GridView -PassThru -Title 'Available functions'


# Get a list of all commandlets
Get-Command -CommandType Cmdlet | 
Out-GridView -PassThru -Title 'Available cmdlets'


# Get a list of all functions for the specified name
Get-Command -Name '*ADGroup*' -CommandType Function | 
Out-GridView -PassThru -Title 'Available named functions'


# Get a list of all commandlets for the specified name
Get-Command -Name '*ADGroup**'  -CommandType Cmdlet | 
Out-GridView -PassThru -Title 'Available named cmdlet'


# get function / cmdlet details
(Get-Command -Name Get-ChildItem).Parameters
Get-help -Name Get-ChildItem -Examples
Get-help -Name Get-ChildItem -Full
Get-help -Name Get-ChildItem -Online


(Get-Command -Name ForEach).Parameters
Get-help -Name ForEach -Examples
Get-help -Name ForEach -Full
Get-help -Name ForEach -Online


(Get-Command -Name Copy-Item).Parameters
Get-help -Name Copy-Item -Examples
Get-help -Name Copy-Item -Full
Get-help -Name Copy-Item -Online


# Get parameter that accept pipeline input
Get-Help Get-ChildItem -Parameter * | 
Where-Object {$_.pipelineInput -match 'true'} | 
Select * 


Get-Help about_*
Get-Help about_Functions

或者直接使用内置机器人复制将源复制到目标。

robocopy <Source> <Destination> [<File>[ ...]] [<Options>]

查看 /COPY:[copyflags] 和 /DCOPY 开关的选项。

# As per the ROBOCOPY /? usage info:
/COPY:copyflag[s] :: what to COPY for files (default is /COPY:DAT).
                      (copyflags : D=Data, A=Attributes, T=Timestamps).
                      (S=Security=NTFS ACLs, O=Owner info, U=aUditing info).

/DCOPY:T :: COPY Directory Timestamps.


# For example:
ROBOCOPY c:\src d:\dest /MIR /COPY:DT /DCOPY:T


# Will copy all files and folders and preserve the date and time stamps.
ROBOCOPY c:\src d:\dest /MIR /COPY:DAT /DCOPY:T


Will copy all files and folders and preserve the date & time stamps and file attributes.

There is also another (and I believe deprecated?) switch /TIMFIX which does much the same as /COPY:DT but it doesn't fix the time stamps on folders.

相关内容