Board logo

标题: [文件操作] 批处理 将文件名中含有相同字段的文件放入同个文件夹 [打印本页]

作者: 六号民工    时间: 2021-11-18 21:23     标题: 批处理 将文件名中含有相同字段的文件放入同个文件夹

请教大家,现在有一个文件夹,里面包含几百个文件,文件命名为“编号+文件名”

例如:

1-批处理.docx
1-批处理之家.pdf
2-批处理真牛.pdf
3-批处理学会了吗.xls
3-批处理再学一次.jpg
……
……

如何把带有相同编号的文件归入同一个文件夹,使得该文件夹最终整理为:

文件夹1
文件夹2
文件夹3
……
……

变形:假如文件夹中已经包含有:

文件夹1
文件夹2
文件夹3
……
……

但是各个文件夹里的文件命名没有带编号,如何让这些文件带上所在文件夹的编号(不删去原有名字),且依旧留在原文件夹中呢?
作者: Batcher    时间: 2021-11-18 21:36

回复 1# 六号民工


归入.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1* delims=-" %%i in ('dir /b /a-d "*-*"') do (
  4.     if "%%i-%%j" neq "%~nx0" (
  5.         if not exist "文件夹%%i\" (
  6.             md "文件夹%%i"
  7.         )
  8.         move "%%i-%%j" "文件夹%%i\"
  9.     )
  10. )
复制代码
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: liqihu    时间: 2021-11-18 22:06

高手,学习了。
作者: qixiaobin0715    时间: 2021-11-18 22:10

第2种情形,批处理文件放在与各文件夹同一目录。未测试:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('dir /b /ad') do (
  4.     set n=%%i
  5.     set n=!n:文件夹=!
  6.     pushd "%%i"
  7.     for /f "delims=" %%a in ('dir /b /a-d') do ren "%%a" "!n!-%%a"
  8.     popd
  9. )
  10. pause
复制代码





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