标题: [文件操作] 批处理如何根据关键字、序号来创建新的文件夹 [打印本页]
作者: toyerspollors 时间: 2022-1-16 15:13 标题: 批处理如何根据关键字、序号来创建新的文件夹
不知道下方的问题该起什么样的主题。请见谅!
0110 购买-肉类-02
0110 购买-肉类-03
0110 购买-豆类-05
0110 出售-肉类-03
0115 其它-过期食品-03
0115 其它-清仓-02
0115 其它-清仓-03
0115 其它-清仓-04
我想利用批处理创建统计文件夹,如我当前目录下有上方的文件夹,我想根据中间红色部分的关键字,创建当天日期文件夹,后面的序号能接续起来,效果见下方。
0116 购买-肉类-04
0116 购买-豆类-06
0116 出售-肉类-04
0116 其它-过期食品-04
0116 其它-清仓-05
作者: flashercs 时间: 2022-1-16 15:45
后面序号会达到-99 后 怎么弄
作者: toyerspollors 时间: 2022-1-16 19:15
本帖最后由 toyerspollors 于 2022-1-16 19:17 编辑
回复 2# flashercs
一般达不到那么高数值,要是数值上100不好处理吗?
如果我前面的序号是1-9,而不是01-09,处理起来是不是比01-09要麻烦一些?
作者: qixiaobin0715 时间: 2022-1-16 20:44
本帖最后由 qixiaobin0715 于 2022-1-17 09:11 编辑
1-9、01-09代码不同而已。01-09这样处理:- @echo off
- set var=%date:~5,2%%date:~8,2%
- setlocal enabledelayedexpansion
- for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad') do set #%%a-%%b=%%c
- for /f "tokens=1* delims==#" %%i in ('set #') do (
- for /f "tokens=* delims=0" %%x in ("%%j") do (
- set /a n=100+%%x+1
- md "%var% %%i-!n:~-2!"
- )
- )
- pause
复制代码
未测试
作者: toyerspollors 时间: 2022-1-17 00:04
回复 4# qixiaobin0715
无法正确创建我想要的文件夹,请帮测试一下。谢谢!
作者: flashercs 时间: 2022-1-17 00:54
- @echo off
- set var=%date:~5,2%%date:~8,2%
- setlocal enabledelayedexpansion
- for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad *-*-*') do set #%%a-%%b=%%c
- for /f "tokens=1* delims=#=" %%i in ('set #') do (
- set /a n=1%%j+1
- md "%var% %%i-!n:~-2!"
- )
- pause
复制代码
作者: qixiaobin0715 时间: 2022-1-17 09:12
回复 5# toyerspollors
已修改。还是6楼的代码严谨。
作者: qixiaobin0715 时间: 2022-1-17 09:39
本帖最后由 qixiaobin0715 于 2022-1-17 09:42 编辑
如果序号是1-9之类的:- @echo off
- set var=%date:~5,2%%date:~8,2%
- setlocal enabledelayedexpansion
- for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad *-*-*') do (
- if defined #%%a-%%b (
- if !#%%a-%%b! lss %%c set #%%a-%%b=%%c
- ) else (
- set #%%a-%%b=%%c
- )
- )
- for /f "tokens=1* delims=#=" %%i in ('set #') do (
- set /a n=%%j+1
- md "%var% %%i-!n!"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |