标题: [文件操作] [已解决]批处理如何根据文件名自创文件夹归类? [打印本页]
作者: 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
- 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
- @echo off
- for /f "tokens=1-2* delims=-" %%a in ('dir /b /a-d *-*-*^|find /v "%~nx0"') do (
- if not exist "%%a-%%b" (
- md "%%a-%%b"
- )
- move "%%a-%%b-%%c" "%%a-%%b"
- )
- pause
复制代码
作者: Five66 时间: 2023-9-1 00:51
本帖最后由 Five66 于 2023-9-1 15:51 编辑
这次应该没搞错了吧,文件名最好不要有特殊字符,还有前缀长度必须统一- @echo off
- rem 前缀长度 如1.2.3.4-111-001.jpg 前缀为 1.2.3.4-111 长度11
- set hz=11
-
- for %%a in (*.jp*) do (
- set "aaa=%%a"
- setlocal enabledelayedexpansion
- set thehz=!aaa:~0,%hz%!
- if not exist "!thehz!" echo 创建文件夹:"!thehz!"&md "!thehz!"
- echo 移动文件:%%a&move "%%a" "!thehz!\" 1>nul
- endlocal
- echo.
- )
- echo done&pause&exit /b
复制代码
作者: Nsqs 时间: 2023-9-1 06:21
本帖最后由 Nsqs 于 2023-9-1 06:22 编辑
- 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
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
- set str=%%~nxi
- if not exist "!str:~,-4!" md "!str:~,-4!"
- move "%%i" "!str:~,-4!\"
- )
- 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 |