Powershell LastWriteTime 不正确

Powershell LastWriteTime 不正确

我正在运行以下脚本,根据目录中文件名的前 9 个字符创建目录,然后根据文件名将文件移动到这些目录中。

dir | %{ 
    $id = $_.Name.SubString(0,9); 
    if(-not (Test-Path $id)) {mkdir $id}; 
    mv $_ "$id\$_";}

现在,我发现运行脚本后文件夹被标记为几年前的 LastWriteTime。

以下是 Powershell 的输出

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        13/04/2006   7:25 PM            XXX095_00
d----        13/04/2006   7:29 PM            XXX285_0_

谁能告诉我这个 LastWriteTime 来自哪里?

答案1

移动文件似乎不算作写入。我猜那是因为你实际上并没有写入文件的内容。但你可以自己更新 LastWriteTime。试试这个:

dir | %{ 
    $id = $_.Name.SubString(0,9); 
    if(-not (Test-Path $id)) {mkdir $id};
    $_.LastWriteTime = Get-Date;           # <---- Added line.
    mv $_ "$id\$_";}

(顺便说一下,当您的语句位于单独的行上时,您不需要分号。)

相关内容