我有几个文本文件,我想更改这些文件的创建日期。我遇到了几个问题,因此希望得到针对我的情况的建议。
首先我发现此解决方案更改创建日期一文件。它涉及运行 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.