2017-03-08 104 views
1

我写了一个简单的PowerShell脚本,通过允许她手动指定正确的创建日期来帮助我的妻子组织一些导入的iPhone视频文件。它似乎按预期工作,除了如果我制作其中一个文件的副本,我无法在副本上设置创建日期。PowerShell脚本集创建日期在文件副本上失败

注意:在这种情况下,一天的时间可以忽略不计。

$movFiles = Get-ChildItem "C:\Users\jgrant\Desktop\videos" -Filter *.MOV 
Foreach ($file in $movFiles) { 
    $fileName = $file.Name 
    $userDate = Read-Host -Prompt "Date wanted for ${fileName} (format--> 1970-02-13) " 
    $newDateObj = Get-Date -Date $userDate 
    $item.CreationTime = $newDateObj 
} 

在验证结果时,除了我刚刚拷贝的文件外,所有文件都已被正确修改。有没有办法强制修改创建日期(在复制之前不需要更改)?具体来说,是什么机制阻碍了这一进程?

+2

您应该使用$ file.CreationTime,而不是$ item.CreationTime – autosvet

+0

它就在那里。谢谢。 –

+0

简单:)你想重新发布它作为答案吗? – autosvet

回答

0

正如autosvet在他们的评论中指出的那样,我只是在我的变量名中有一个错误。更正将变量$ item更改为$ file。这里是正确的代码:

$movFiles = Get-ChildItem "C:\Users\jgrant\Desktop\videos" -Filter *.MOV 
Foreach ($file in $movFiles) { 
    $fileName = $file.Name 
    $userDate = Read-Host -Prompt "Date wanted for ${fileName} (format--> 1970-02-13) " 
    $newDateObj = Get-Date -Date $userDate 
    $file.CreationTime = $newDateObj 
} 

再次感谢autosvet。