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

[文件操作] [已解决]批处理如何根据文件名自创文件夹归类?

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


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

评分人数

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

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

啊.搞错了,已编辑

TOP

  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\"
复制代码
1

评分人数

目的,学习批处理

TOP

  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
复制代码
1

评分人数

bat小白,请多指教!谢谢!

TOP

本帖最后由 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
复制代码

TOP

本帖最后由 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}"
复制代码

TOP

  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
复制代码

TOP

回复 5# Five66


    使用两个 setlocal enabledelayedexpansion 是有什么特殊的考虑吗?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher


    啊,失误了,原本想看看setlocal能否嵌套加上去后,忘记去掉就发出来了

TOP

回复 3# hlzj88


    感谢有用

TOP

回复 4# 77七


    感谢

TOP

返回列表