Board logo

标题: [文件操作] 【已解决】批处理怎样把文件自创文件夹归类? [打印本页]

作者: liaoguinan    时间: 2023-1-27 16:26     标题: 【已解决】批处理怎样把文件自创文件夹归类?

如何根据文件名创建子文件夹把把对应文件放进去?      
   首层文件夹的格式是
HH-001、HH-002、HH-003
文件夹内放着HH-001-001.pdf、HH-001-002.pdf、HH-001-003.pdf、HH-001-004.pdf


这样形式的PDF文件,如何把这些PDF分别创建一个文件夹放入?


比如HH-001-001.pdf就创建子文件夹HH-001-001把HH-001-001.pdf放进去,其他一样根据PDF文件名来创建

每个首层目录下都有很多PDF文件


作者: hfxiang    时间: 2023-1-27 17:29

  1. @for %%a in (*) do @if "%%~fa" NEQ "%~f0" @md "%%~na">nul 2>nul&@move "%%a" ".\%%~na">nul 2>nul
复制代码

作者: 77七    时间: 2023-1-27 17:39

  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /s /a-d *.pdf') do (
  4. cd "%%~dpi"
  5. md "%%~ni"
  6. echo move "%%i" "%%~ni"
  7. move "%%i" "%%~ni"
  8. )
  9. pause
复制代码

bat放在 新建文件夹(2)目录下
使用前先测试或备份
作者: liaoguinan    时间: 2023-1-27 18:40

回复 2# hfxiang


  你这个只能在子目录下运行,能改成在根目录下直接运行吗?只创建1层子目录
作者: liaoguinan    时间: 2023-1-27 18:44

回复 3# 77七


现在这代码是这样一直双击就一直创建, 能改成只创建一层子目录吗?,如果已有一层子目录就不创建了


最终格式          新建文件夹 (2) \HH-001\HH-001-001\HH-001-001.pdf        之后在双击脚本不在创建
作者: 77七    时间: 2023-1-27 19:08

回复 5# liaoguinan


  
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4. pushd "%%a"
  5. for /f "delims=" %%i in ('dir /b /a-d *.pdf') do (
  6. md "%%~ni"
  7. echo move "%%i" "%%~ni"
  8. move "%%i" "%%~ni"
  9. )
  10. popd
  11. )
  12. pause
复制代码
使用前先测试或备份
作者: liaoguinan    时间: 2023-1-27 20:58

回复 6# 77七


    感谢完美
作者: qixiaobin0715    时间: 2023-1-28 09:14

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /s /a-d *.pdf') do (
  3.     md "%%~dpa%%~na">nul 2>nul
  4.     move "%%a" "%%~dpa%%~na">nul 2>nul
  5. )
  6. pause
复制代码

作者: hfxiang    时间: 2023-1-28 09:51

本帖最后由 hfxiang 于 2023-1-28 11:16 编辑

回复 4# liaoguinan


稍做修改即可:
  1. @for /f %%a in ('dir *.pdf /b/s/a-d') do  @if "%%~fa" NEQ "%~f0" @pushd "%%~dpa" &@(@for /f "delims=\" %%b in ("%%~dpa") do @if "%%~nb" NEQ "%%~na" @md "%%~dpna">nul 2>nul&@move "%%~fa" "%%~dpna\">nul 2>nul )&@popd
复制代码





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