Board logo

标题: [文件操作] [已解决]批处理如何根据文件名自创文件夹归类? [打印本页]

作者: liaoguinan    时间: 2023-8-31 21:25     标题: [已解决]批处理如何根据文件名自创文件夹归类?

本帖最后由 liaoguinan 于 2023-9-1 22:18 编辑


如何上图文件名前缀创建对应的文件夹把对应的文件放入内
下图是创建的文件夹

作者: Five66    时间: 2023-8-31 22:47

本帖最后由 Five66 于 2023-8-31 23:08 编辑

啊.搞错了,已编辑
作者: hlzj88    时间: 2023-8-31 23:41

  1. for /f "tokens=1-2 delims=-" %%i in ('dir /b /on "*.jpg"') do md %%i-%%j>nul 2>nul&&move /y "%%i-%%j*.jpg" "%%i-%%j\"
复制代码

作者: 77七    时间: 2023-9-1 00:42

  1. @echo off
  2. for /f "tokens=1-2* delims=-" %%a in ('dir /b /a-d *-*-*^|find /v "%~nx0"') do (
  3. if not exist "%%a-%%b" (
  4. md "%%a-%%b"
  5. )
  6. move "%%a-%%b-%%c" "%%a-%%b"
  7. )
  8. pause
复制代码

作者: Five66    时间: 2023-9-1 00:51

本帖最后由 Five66 于 2023-9-1 15:51 编辑

这次应该没搞错了吧,文件名最好不要有特殊字符,还有前缀长度必须统一
  1. @echo off
  2. rem 前缀长度 如1.2.3.4-111-001.jpg 前缀为 1.2.3.4-111 长度11
  3. set hz=11
  4. for %%a in (*.jp*) do (
  5. set "aaa=%%a"
  6. setlocal enabledelayedexpansion
  7. set thehz=!aaa:~0,%hz%!
  8. if not exist "!thehz!" echo 创建文件夹:"!thehz!"&md "!thehz!"
  9. echo   移动文件:%%a&move "%%a" "!thehz!\" 1>nul
  10. endlocal
  11. echo.
  12. )
  13. echo done&pause&exit /b
复制代码

作者: Nsqs    时间: 2023-9-1 06:21

本帖最后由 Nsqs 于 2023-9-1 06:22 编辑
  1. powershell -noprofile -executionpolicy bypass "dir *.jpg -File|%%{$name=$_.BaseName -replace '(?=.+)-\d+$';if(!(Test-Path -PathType Container $name)){md $name}move $_.FullName $name}"
复制代码

作者: qixiaobin0715    时间: 2023-9-1 08:49

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  4.     set str=%%~nxi
  5.     if not exist "!str:~,-4!" md "!str:~,-4!"
  6.     move "%%i" "!str:~,-4!\"
  7. )
  8. pause
复制代码

作者: Batcher    时间: 2023-9-1 10:55

回复 5# Five66


    使用两个 setlocal enabledelayedexpansion 是有什么特殊的考虑吗?
作者: Five66    时间: 2023-9-1 15:49

回复 8# Batcher


    啊,失误了,原本想看看setlocal能否嵌套加上去后,忘记去掉就发出来了
作者: liaoguinan    时间: 2023-9-1 22:17

回复 3# hlzj88


    感谢有用
作者: liaoguinan    时间: 2023-9-1 22:18

回复 4# 77七


    感谢




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