Board logo

标题: [日期时间] 怎么修改文件属性里面的修改日期 [打印本页]

作者: tangwei94054    时间: 2019-12-30 01:44     标题: 怎么修改文件属性里面的修改日期

各位大侠,请问现在一个文件夹下有很多的文件。每个文件的修改日期是不一样的。我可不可以建立一个文本。格式为:  文件名+需要修改成的日期     通过运行批处理自动根据建立的文本格式里面的内容来分别更改每个文件的修改日期呢?
比如一个文件夹下有文件1,2,3,,,,每个文件我用文本建立一个格式   1+20190101    2+2019102   3+20190303 ,,,,然后通过批处理达到自动设置的目的。时间的格式可以为   2019/01/01  或者20190101都可以。
只需要修改日期就可以了。

先谢谢各位大侠帮忙!
作者: went    时间: 2019-12-30 08:53

文件是什么格式的
作者: zaqmlp    时间: 2019-12-30 13:38

本帖最后由 zaqmlp 于 2019-12-30 18:24 编辑
  1. <# :
  2. cls
  3. @echo off
  4. set info=互助互利,支付宝扫码头像,感谢赞助
  5. rem 有问题,可加QQ956535081及时沟通
  6. title %info%
  7. powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default)))"
  8. echo;%info%
  9. pause
  10. exit
  11. #>
  12. #文件夹路径
  13. $folder='D:\xxx\yyy';
  14. #文件及修改日期
  15. $list=@{
  16.     '1.txt'='2019-01-01';
  17.     '2.rar'='2019-10-23';
  18.     '3.jpg'='2019-03-03';
  19.     'xx.mp4'='2019-03-17'
  20. };
  21. if(-not (test-path -liter $folder)){write-host ('"'+$folder+'" not found');exit;};
  22. $files=@(dir -liter $folder|?{$_ -is [System.IO.FileInfo]});
  23. for($i=0;$i -lt $files.length;$i++){
  24.     if($list.ContainsKey($files[$i].Name)){
  25.         $old=$files[$i].LastWriteTime;
  26.         $new=(get-date ($list[$files[$i].Name]+' '+$old.toString('HH:mm:ss')));
  27.         $files[$i].LastWriteTime=$new;
  28.         write-host ('['+$old.toString('yyyy-MM-dd HH:mm:ss')+'-->'+$new.toString('yyyy-MM-dd HH:mm:ss')+']'+$files[$i].Name);
  29.     };
  30. };
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2