Board logo

标题: 50红包求助批处理把前一天生成的文件复制到指定文件夹 [打印本页]

作者: 战北    时间: 2018-6-12 21:17     标题: 50红包求助批处理把前一天生成的文件复制到指定文件夹

是这样,我想把一些系统每天生成的文件自动的复制到指定文件夹,比如刚生成的文件命名格式是1806122113....(最后几个字母也有差别).txt,每天生成的数量不固定,就让他第二天早上八点执行,处理前一天生成的,我想请问一下这个该怎么写啊?
作者: 战北    时间: 2018-6-13 08:23     标题: 50红包求助大神!!!!

是这样,我想把一些系统每天生成的文件自动的复制到指定文件夹,比如刚生成的文件命名格式是1806122113....(最后几个字母也有差别).txt,每天生成的数量不固定,就让他第二天早上八点执行,处理前一天生成的,我想请问一下这个该怎么写啊?
作者: Batcher    时间: 2018-6-13 09:13

系统每天生成的文件固定在某个文件夹里面吗?
还是分散在好多个不同的文件夹,甚至不同的分区下面?这种情况需要全盘搜索,比较麻烦。
作者: yhcfsr    时间: 2018-6-13 09:54

本帖最后由 yhcfsr 于 2018-6-13 09:58 编辑


作者: digger    时间: 2018-6-13 10:36

本帖最后由 digger 于 2018-6-13 10:37 编辑

以下代码实现:总是复制脚本所在目录下(目录可改变)最新日期(这个是通过dir自动排序实现的,因为你的都是数字开头)且这个日期文件数少于4个(数目可自行定义)的TXT到d:\test目录下:但是脚本所在路径下的txt文件数不要超过100000000000000个
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for /f "delims=" %%i in ('dir /b *.txt^|sort ^/+100000000000000') do (
  4.      set flag=%%i
  5.      set flag=!flag:~0,6!
  6.      if "!n!"=="0" set name6=!flag!&set n=1
  7.      if "!flag!"=="!name6!" (
  8.          set/a m+=1
  9.          set "#!m!=%%i"
  10.      ) else (
  11.        if !m! LSS 4 (
  12.           if not exist "d:\test\!#1!" (
  13.              for /l %%j in (1,1,!m!) do copy "!#%%j!" "d:\test"
  14.              pause&exit
  15.           )
  16.         )
  17.       
  18.      )
  19. )
  20. if not exist "d:\test\!#1!" (
  21.              for /l %%j in (1,1,!m!) do copy "!#%%j!" "d:\test"
  22. )
  23. pause
复制代码

作者: 战北    时间: 2018-6-13 11:35

回复 5# digger

留个联系方式呗哥,还有点细节想问,另外给您报酬
作者: digger    时间: 2018-6-13 11:44

回复  digger

留个联系方式呗哥,还有点细节想问,另外给您报酬
战北 发表于 2018-6-13 11:35

我站内发短消息给你了,你可以在页面右上角查看  短消息  就可以看到了
作者: yhcfsr    时间: 2018-6-13 11:52

本帖最后由 yhcfsr 于 2018-6-13 11:54 编辑
  1. @echo off
  2. ::设置检索源目录,多个目录用空格隔开
  3. set "sd="d:\test" "d:\cmd""
  4. ::目的目录
  5. set "dd=d:\备份"
  6. if not exist "%dd%" md "%dd%"
  7. for /f %%a in ('datex -o -1') do set _date=%%a
  8. for /f "delims=" %%a in ('dir /a-d/s/b %sd%') do (
  9. for /f %%i in ('dir /tc "%%a"^|findstr /ri "[0-9]*-[0-9]*-[0-9]*" ') do (
  10. if "%%i" equ "%_date%" copy /y "%%a" "%dd%"
  11. )
  12. )
  13. pause
复制代码
用到第三方命令行DateX
下载后,将DateX与BAT放在一起即可




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