[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. PowerShell "$a=Get-Childitem -path 'E:\test' -Recurse; $b=get-Item 'E:\test'; $a+$b | foreach-object { $_.LastWriteTime = Get-Date; $_.CreationTime = Get-Date }"
复制代码

TOP

回复 3# thp2008


    复制粘贴到 CMD 命令提示符中运行。

TOP

win7 sp1 中文旗舰版,PS 版本 2.0,测试没有问题。
Windows PowerShell
版权所有 (C) 2009 Microsoft Corporation。保留所有权利。

PS C:\Users\WHY> $a = get-Item 'E:\Test'
PS C:\Users\WHY> $a.LastWriteTime = get-Date
PS C:\Users\WHY> $a.CreationTime = get-Date
PS C:\Users\WHY> dir 'E:\Test' -Recurse | forEach{ $_.LastWriteTime = get-Date; $_.CreationTime = get-Date }

TOP

回复 7# thp2008


    跟系统应该没有太大关系,可能是你用资源管理器打开了 E:\Test 目录,进程被占用而无法修改。把文件夹窗口关掉再试。
或者,这样试试:
  1. (New-Object -com Shell.Application).Windows() | ?{ $_.FullName -match '\\explorer\.exe$' } | forEach{ $_.Quit() }
  2. get-Item 'E:\Test' | forEach{ $_.LastWriteTime = get-Date; $_.CreationTime = get-Date }
  3. dir 'E:\Test' -Recurse | forEach{ $_.LastWriteTime = get-Date; $_.CreationTime = get-Date }
复制代码

TOP

第1命令:关闭所有由 explorer 打开的窗口;
第2条命令:修改 E:\Test 目录本身的创建日期、最后修改日期;
第3条命令:修改 E:\Test 下面的文件(目录)及其子目录下面的文件(目录)的创建日期、最后修改日期。

如果需要把这三条改写成批处理 bat 的形式:
  1. @echo off
  2. PowerShell "(New-Object -com Shell.Application).Windows() | ?{ $_.FullName -match '\\explorer\.exe$' } | forEach{ $_.Quit() }; get-Item 'E:\Test' | forEach{ $_.LastWriteTime = get-Date; $_.CreationTime = get-Date }; dir 'E:\Test' -Recurse | forEach{ $_.LastWriteTime = get-Date; $_.CreationTime = get-Date }"
  3. pause
复制代码
1

评分人数

TOP

返回列表