Board logo

标题: [文件操作] [分享]批处理获取子文件夹下第一个和最后一个文件 [打印本页]

作者: Batcher    时间: 2024-1-18 12:27     标题: [分享]批处理获取子文件夹下第一个和最后一个文件

【问题描述】

PDF文件我已经拆分了,我想批量提取这个文件中的第一个和最后一个PDF文件有什么办法吗?
第一个后缀是1“370112007201JA00005地籍调查表_1”但是最后一个不一定是6可能是其他。




作者: Batcher    时间: 2024-1-18 12:28

【解决方案】

test.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /ad') do (
  4.     echo %%i
  5.     pushd "%%i"
  6.     call :GetFirst
  7.     call :GetLast
  8.     popd
  9. )
  10. pause
  11. exit /b
  12. :GetFirst
  13. for /f "delims=" %%j in ('dir /b /a-d *.pdf') do (
  14.     echo     %%j
  15.     goto :eof
  16. )
  17. :GetLast
  18. for /f "delims=" %%j in ('dir /b /a-d *.pdf') do (
  19.     set "FileName=%%j"
  20. )
  21. echo     %FileName%
  22. goto :eof
复制代码

作者: Batcher    时间: 2024-1-18 14:13

补充问题:
PDF文件我可以批量提取到一个文件夹中,我想在这个文件夹中进行操作,只保留数字最大的那个,可以吗?比如说”370112007201JA00005地籍调查表_11“和”370112007201JA00005地籍调查表_20“保留”370112007201JA00005地籍调查表_20“

test-2.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. REM 自动在上级目录创建“提取”文件夹
  4. set "NewFolder=..\提取"
  5. md "%NewFolder%" 2>nul
  6. for /f "tokens=1,2 delims=_" %%a in ('dir /b /a-d "*地籍调查表_1.pdf"') do (
  7.     echo "%%a_%%b" --- ^>"%NewFolder%\"
  8.     for /f "delims=" %%i in ('dir /b /a-d "%%a_*.pdf" ^| find /v /c ""') do (
  9.         echo "%%a_%%i.pdf" ---^> "%NewFolder%\"
  10.         move "%%a_%%i.pdf" "%NewFolder%\"
  11.     )
  12.     move "%%a_%%b" "%NewFolder%\"
  13. )
  14. pause
复制代码

作者: likeyou32    时间: 2024-3-5 15:43

如果用vba+excel ,我可以搞搞,,
   但这个论坛是研究批处理的,另外也讨论vbs, 就是不涉及vba,没有相关板块。
   话说,单说批处理中最精华的 for /f 命令用来提取内容的话,vba+excel+正则表达式 应该比批处理要强大很多吧 ?




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