Board logo

标题: [文件操作] 已解决:文件夹内有判断某个文件是最新的时间 [打印本页]

作者: ataosun    时间: 2020-4-28 10:41     标题: 已解决:文件夹内有判断某个文件是最新的时间

本帖最后由 ataosun 于 2020-4-29 11:05 编辑

企业微信接收文件夹中,接收的日报表名为:日报.xlsx ,如果再有发送过来的,企业微信并不会覆盖原文件,而是生成以原文件名+(1、2、3).xlsx的形式保存的。例如日报(1).xlsx、 日报(2).xlsx、日报(3).xlsx ;
此文件夹内还有其他文件。
目的:想判断出哪个 日报 是最新文件,并移动至指定文件夹,重命名为 日报.xlsx,
作者: Batcher    时间: 2020-4-28 12:26

回复 1# ataosun
  1. @echo off
  2. set "folder1=C:\Test\企业微信接收文件夹"
  3. set "folder2=C:\Test\指定文件夹"
  4. cd /d "%folder1%"
  5. for /f "delims=" %%i in ('dir /b /od 日报*.xlsx') do (
  6.     set "file=%%i"
  7. )
  8. copy /y "%file%" "%folder2%\日报.xlsx"
复制代码

作者: ataosun    时间: 2020-4-29 09:28

回复 2# Batcher


    感谢大神,对大神膜拜。学好计算机编程能解决工作中很多问题,效率特别高。(代码中多了个左括号)
作者: Batcher    时间: 2020-4-29 09:49

回复 3# ataosun


    已删除多余的左括号
作者: ataosun    时间: 2020-4-29 10:17

回复 4# Batcher

可以抽空解释一下这句吗?或者甩给我个文档也行。 不用解释dir。再次感谢。
  1. for /f "delims=" %%i in ('dir /b /od 日报*.xlsx') do (set "file=%%i")
复制代码

作者: Batcher    时间: 2020-4-29 10:37

回复 5# ataosun


批处理for命令教程
http://bbs.bathome.net/thread-31727-1-1.html

批处理for命令从入门到精通以及配套练习题
http://bbs.bathome.net/thread-2189-1-1.html
http://bbs.bathome.net/thread-2336-1-1.html
作者: ataosun    时间: 2020-4-29 11:29

本帖最后由 ataosun 于 2020-4-29 11:40 编辑

回复 6# Batcher
  1. for /f "delims=" %%i in ('dir /b /od 日报*.xlsx') do (set "file=%%i")
复制代码
这行意思是按时间顺序列出文件,并逐一赋值给变量file,因为最新的日期排在最后面,所以,变量file最后的值,就是我们想要的结果。是这样的吗?
附:是的,是的 我在set "file=%%i" 后面加了一句 echo %%file ,最后又加了个pause ,正验证了我的想法。
作者: Batcher    时间: 2020-4-29 12:10

回复 7# ataosun


    是的,就是这个意思。




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