[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] (已解决)批处理如何查找出多个文件夹里最新的文件并以所在的文件夹的名称重命名?

提取最新文件重命名请教大神
我有一个提取最新文件的批处理,怎么让它按照提取的文件夹名字重命名啊,比如E盘下有10个文件夹每个里面提取一个最新文本,
这10个文本名字按提取的文件夹名字命名;如果只提取大于10KB的最新文本怎么修改呢
  1. @echo off
  2. set "NewFolder=E:\csv"
  3. if not exist "%NewFolder%\" (
  4.     md "%NewFolder%"
  5. )
  6. for /d /r E:\CSV\ %%a in (*) do (
  7.     call :latest "%%a"
  8. )
  9. pause
  10. goto :eof
  11. :latest
  12. for /f "delims=" %%a in ('dir /a-d /b /o-d /tw "%~1" 2^>nul') do (
  13.     copy /y "%~1\%%a" "%NewFolder%"
  14.     goto :eof
  15. )
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 11# haichuan5121


    第14行改成 copy /y "%~1\%%a" "%NewFolder%\%~nx1%%~xa"
1

评分人数

    • haichuan5121: 谢谢大神指点,成功完成,奔着学习的精神能 ...技术 + 1

TOP

本帖最后由 haichuan5121 于 2017-4-2 02:09 编辑

回复 10# ShowCode
  1. @echo off
  2. set "NewFolder=f:\log"
  3. if not exist "%NewFolder%\" (
  4.     md "%NewFolder%"
  5. )
  6. for /d /r f:\log\ %%a in (*) do (
  7.     call :latest "%%a"
  8. )
  9. pause
  10. goto :eof
  11. :latest
  12. for /f "skip=1 delims=" %%a in ('dir /a-d /b /o-d /tw "%~1" 2^>nul') do (
  13. copy /y "%~1\%%a" "%NewFolder%"
  14.     goto :eof
  15. )
复制代码
这个可以提第二个   按提取文件所在文件夹名字重命名怎么修改?

TOP

回复 9# haichuan5121


只提取第二个
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=1 delims=" %%i in ('dir /b /a-d') do (
  4.     set "file=%%i"
  5.     goto next
  6. )
  7. :next
  8. echo,!file!
  9. pause
复制代码

TOP

文件夹下文件只提取第二个用什么分割区分啊

TOP

回复 7# ShowCode


    结果还是一样   提取的最老的

TOP

回复 6# haichuan5121


    把 /o-d 改成 /od 试试看

TOP

求修改提取文本重命名的代码。

大神老师请指点。。
         写的提取文本重命名的代码。这个提取的结果是最老的一个文件,怎么修改提取的就是最新的了啊?
在F:/LOG 下有10个文件夹 ,每个文件夹下有2000文件,想提取最新生成的>10K 的文件或者倒数第二个生成的文件!
  1. @Echo Off
  2. For /f "tokens=*" %%i in ('dir /ad /b /s/o-d /tw "%~dp0"') do (
  3. For /f "skip=1999 tokens=*" %%j in ('dir /a-d /b /s/o-d /tw "%%i\*.CSV"') do (
  4. Ren "%%j" "%%~nxi%%~xj"
  5. Copy "%%i\%%~nxi%%~xj" "F:\log\"
  6. ))
复制代码

TOP

各位老师 帮帮忙啊! 小弟只会看不会写啊!

TOP

坚持坚持大神在哪

TOP

继续求指导

TOP

set "NewFolder=E:\csv" 这里写错了吧?新文件夹不能跟老文件夹一样啊,Windows文件夹不区分大小写

TOP

返回列表