使用powershell编辑文件修改日期

文章对比了PowerShell和cmd在系统管理和脚本编写上的差异,指出PowerShell是基于任务的、面向对象的管理工具,而cmd则更面向过程。同时,提供了使用PowerShell改变文件和文件夹创建、最后写入及最后访问日期/时间戳的方法,包括对整个目录及其子目录的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PowerShell与cmd的区别

Windows PowerShell®是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计。 在 .NET Framework 的基础上构建的 Windows PowerShell 可帮助 IT 专业人士和高级用户控制和自动执行 Windows 操作系统以及在 Windows 上运行的应用程序的管理。

cmd是面向过程的BAT脚本,而PowerShell是面向对象的脚本语言,旨在从用户的角度编写脚本

使用运行框:按下"Win + R"组合键打开运行框,键入"powershell",然后按下"Enter"键。

 

 

 

Untitled

文件和文件夹有如下三个时间

 

Untitled

  • 更改名为 test.xlsx 的文件的创建日期/时间戳:

(Get-Item "路径").CreationTime=("创建日期")

日期格式 日月年时分秒

例  August 2023 12:30:00 ;3 7 2023 12:30:00 

(Get-Item "D:\QQ\QQ数据\1497786960\FileRecv\test.xlsx").CreationTime=("3 August 2023 12:30:00")
  • 更改名为 test.xlsx 的文件的最后写入日期/时间戳:

(Get-Item "路径").LastWriteTime=("创建日期")

(Get-Item "D:\QQ\QQ数据\1497786960\FileRecv\test.xlsx").LastWriteTime=("3 August 2023 12:40:00")
  • 更改名为 test.xlsx 的文件的最后访问日期/时间戳:

(Get-Item "路径").LastAccessTime=("创建日期")

(Get-Item "D:\QQ\QQ数据\1497786960\FileRecv\test.xlsx").LastAccessTime=("3 August 2023 12:50:00")
  • 更改文件夹中每个文件和子文件夹的时间戳的日期/时间戳:
Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\ * | ForEach-Object{$_.CreationTime = ("3 August 2023 12:30:00")}
Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\ * |ForEach-Object{$_.LastWriteTime = ("3 August 2023 12:40:00")}
Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\* | ForEach-Object{$_.LastAccessTime = ("3 August 2023 12:50:00")}

ForEach-Object命令对每个文件执行命令,$_表示当前正在处理的文件。Get-ChildItem命令获取D:\QQ\QQ数据\1497786960\FileRecv\目录下的所有文件和文件夹,包括隐藏文件和系统文件。通过使用-Force参数,即使文件是只读的或受保护的,也会被获取到,ForEach-Object迭代遍历每个文件项。 上述命令会更改文件夹中每个文件和子文件夹的时间戳。要仅对文件应用更改(即排除子文件夹),请使用以下语法:

Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\* | Where-Object {! $_.PSIsContainer} | ForEach-Object{$.CreationTime = ("3 June 2023 12:30:00")}
Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\* | Where-Object {! $_.PSIsContainer} | ForEach-Object{$.LastWriteTime = ("3 June 2023 12:30:00")}
Get-ChildItem -force D:\QQ\QQ数据\1497786960\FileRecv\*| Where-Object {! $_.PSIsContainer} | ForEach-Object{$.LastAccessTime = ("3 June 2023 12:30:00")}

Where-Object {! $_.PSIsContainer}:这部分命令使用Where-Object筛选器,选择不是文件夹的项。! $_.PSIsContainer**表示排除所有文件夹,只保留文件项。

  • 更改文件夹中所有文件和文件夹的时间戳的日期/时间戳:
Get-ChildItem -Recurse -force  D:\QQ\QQ数据\1497786960\FileRecv\c#实验、实习\ * | ForEach-Object{$_.LastWriteTime = ("28 June 2023 17:06:00")}

-Recurse参数告诉Get-ChildItem命令要递归地搜索目标目录及其所有子目录,以获取所有文件和文件夹。这样,命令将返回目标目录下的所有文件和文件夹,以及它们的子目录中的文件和文件夹,以此类推。

 

 查看文件夹中所有文件的修改日期、创建日期和上次写入日期数据

Get-ChildItem -force "D:\QQ\QQ数据\1497786960\FileRecv\c#实验、实习\*" | Select-Object Name, CreationTime, LastWriteTime, LastAccessTime

 

foreach ($objFile in Get-ChildItem "D:\Test\.") { '"' + $objFile.Name + '" | ' + $objFile.CreationTime + ' | ' + $objFile.LastWriteTime + ' | ' + $objFile.LastAccessTime}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值