批量修改文件的修改时间

五分钟完成老板给的一小时任务,为了不让老板看到修改时间是每五分钟一个,决定把文件修改时间改了,但是一个一个改太需要时间。

查了资料,都需要安装软件,其实在POWERSHELL里一行代码就可以:

更改为当前时间

Get-Childitem -path ‘C:\Users\MAC\Desktop\task01’ -Recurse | foreach-object { $_.LastWriteTime = Get-Date ; $_.CreationTime = Get-Date }

更改为指定时间只需要把Get-Date换成你想要的时间

Get-Childitem -path ‘D:\Tomcat7\webapps’ -Recurse | foreach-object { $_.LastWriteTime = Get-Date ; $_.CreationTime = ‘23/04/2022 08:05:37’ }

done,简直就是社畜必备技能啊

____25.01.15更新MAC版本

For MAC,  我参考了这个https://sysin.org/blog/how-to-change-file-date/

看起来setfile是最好用的(但是需要Xcode)。请注意单引号(‘’)不是标准的 ASCII 单引号(''),可能导致命令解析错误。建议使用直引号('01/12/25'

setfile -m '01/12/25' [filename]
 

 

### 关于 PowerShell 中 `Get-ChildItem` 命令参数绑定异常的解决方案 在 PowerShell 中,`Get-ChildItem` 是用于检索文件系统中的项目(如文件和目录)的一个常用 cmdlet。然而,在某些情况下,传递通配符模式可能会引发参数绑定错误。例如,当尝试运行如下命令时: ```powershell Get-ChildItem '*360*.*' ``` 如果该路径下不存在任何匹配项,则可能导致参数绑定失败或抛出异常。 #### 问题分析 此问题的根本原因在于 PowerShell 的参数解析机制。具体来说,`Get-ChildItem` 使用 `-Path` 或 `-LiteralPath` 参数来指定目标位置。如果没有找到与通配符匹配的内容,PowerShell 将无法正确绑定这些参数到实际的目标资源[^1]。 #### 解决方法 以下是几种可能的解决方式: 1. **显式声明 Path 参数** 显式使用 `-Path` 参数可以更清楚地定义输入范围,并减少潜在的歧义。 ```powershell Get-ChildItem -Path "*360*.*" ``` 2. **提供默认根目录** 如果未指明具体的父级目录,默认会从当前工作目录开始查找。可以通过明确设置根目录来规避这一问题。 ```powershell Get-ChildItem C:\SomeDirectory\*360*.* ``` 3. **利用 ErrorAction 防止脚本中断** 设置 `ErrorAction` 参数为 `SilentlyContinue` 能够忽略因无匹配结果而产生的错误提示。 ```powershell Get-ChildItem *360*.* -ErrorAction SilentlyContinue ``` 4. **验证是否存在匹配项后再执行操作** 在调用之前先确认是否有符合条件的对象存在,从而避免不必要的错误发生。 ```powershell if (Test-Path *360*.*) { Get-ChildItem *360*.* } else { Write-Host "No matching items found." } ``` 通过上述任意一种或者组合多种策略的方法都可以有效处理此类情况下的参数绑定异常现象[^2]。 另外值得注意的是,对于复杂查询场景还可以考虑借助管道与其他 Cmdlets 结合应用,比如 `$object | Get-Member` 这样的形式可以帮助我们更好地理解对象结构及其可用属性方法[^3]。 ### 示例代码 下面给出一段综合运用以上技巧的实际例子: ```powershell $rootDir = 'C:\YourSearchRoot' if (-not (Test-Path $rootDir)) { throw "$rootDir does not exist!" } $results = @() foreach ($item in @(Get-ChildItem -Path "${rootDir}\*360*.*" -Recurse -File -ErrorAction Ignore)) { $results += New-Object PSObject -Property @{ FullName = $item.FullName; LastWriteTime= $item.LastWriteTime.ToString(); } } if ($results.Count -eq 0) { Write-Warning "No files matched the pattern under ${rootDir}." } else { Format-Table -InputObject $results -AutoSize } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值