标题: [文件操作] 批处理怎么样才能提取不同位置的字符来做为文件夹名? [打印本页]
作者: feixiang8209 时间: 2020-4-15 17:17 标题: 批处理怎么样才能提取不同位置的字符来做为文件夹名?
本帖最后由 feixiang8209 于 2020-4-16 08:34 编辑
N290007-MCNQRP-1-IPB78-SJ002-OneSize-NO1-Black-1-2-printArea-3122035.png
N290001-JW5CZY-1-IPBXS-SJ001-OneSize-NO1-Black-1-2-printArea-2725039.png
N160006-RHLGVP-1-SJ001--OneSize-NO1-White-1-printArea-2635212.png
N160010-WP6AY2-1-SJ002--OneSize-NO1-White-1-printArea-2662476.png
一个文件夹内分别有以上两种不同长度字段的文件名,要如何同时提取红色标注的文字为文件名,并移动相应的图片到各自的文件夹呢?- @echo off
- for %%a in (*.png) do (
- for /f "tokens=4,5 delims=-(" %%i in ("%%~na") do (
- if not exist "%%~i-%%~j\." md "%%~i-%%~j"
- move "%%~a" "%%~i-%%~j\"
- )
- )
复制代码
这代码只能提取两个字段的代码,要如何修改呢?
作者: wujunkai 时间: 2020-4-15 19:10
回复 1# feixiang8209
这个要提取的字符有没有什么共同特征?比如都以SJ开头。
另外,不要用闪字,看着难受
作者: feixiang8209 时间: 2020-4-16 08:33
回复 2# wujunkai
都是以SJ开头的
作者: wujunkai 时间: 2020-4-16 08:56
回复 3# feixiang8209 - @echo off & setlocal enabledelayedexpansion
-
- :main
- for /R %%i in (*.png) do (
- for /F "tokens=4,5 delims=-" %%j in ("%%i") do (
- set "SJ=%%j"
- if "!SJ:~0,2!"=="SJ" ('
- md "%%j"
- echo move "%%i" "%%j\"
- )
- set "SJ=%%k"
- if "!SJ:~0,2!"=="SJ" (
- md "%%k"
- echo move "%%i" "%%k\"
- )
- )
- )
- pause
- goto:eof
复制代码
确认无误后删掉echo
我不是很懂move的想法,建议先备份文件
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |