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

[文件操作] 批处理如何根据关键字、序号来创建新的文件夹

不知道下方的问题该起什么样的主题。请见谅!

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

后面序号会达到-99 后 怎么弄
微信:flashercs
QQ:49908356

TOP

本帖最后由 toyerspollors 于 2022-1-16 19:17 编辑

回复 2# flashercs

一般达不到那么高数值,要是数值上100不好处理吗?

如果我前面的序号是1-9,而不是01-09,处理起来是不是比01-09要麻烦一些?

TOP

本帖最后由 qixiaobin0715 于 2022-1-17 09:11 编辑

1-9、01-09代码不同而已。01-09这样处理:
  1. @echo off
  2. set var=%date:~5,2%%date:~8,2%
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad') do set #%%a-%%b=%%c
  5. for /f "tokens=1* delims==#" %%i in ('set #') do (
  6.     for /f "tokens=* delims=0" %%x in ("%%j") do (
  7.         set /a n=100+%%x+1
  8.         md "%var% %%i-!n:~-2!"
  9.     )
  10. )
  11. pause
复制代码
未测试
1

评分人数

TOP

回复 4# qixiaobin0715

无法正确创建我想要的文件夹,请帮测试一下。谢谢!

TOP

  1. @echo off
  2. set var=%date:~5,2%%date:~8,2%
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad *-*-*') do set #%%a-%%b=%%c
  5. for /f "tokens=1* delims=#=" %%i in ('set #') do (
  6.         set /a n=1%%j+1
  7.         md "%var% %%i-!n:~-2!"
  8. )
  9. pause
复制代码
微信:flashercs
QQ:49908356

TOP

回复 5# toyerspollors
已修改。还是6楼的代码严谨。

TOP

本帖最后由 qixiaobin0715 于 2022-1-17 09:42 编辑

如果序号是1-9之类的:
  1. @echo off
  2. set var=%date:~5,2%%date:~8,2%
  3. setlocal enabledelayedexpansion
  4. for /f "tokens=2-4 delims=- " %%a in ('dir /b /ad *-*-*') do (
  5.     if defined #%%a-%%b (
  6.         if !#%%a-%%b! lss %%c set #%%a-%%b=%%c
  7.     ) else (
  8.         set #%%a-%%b=%%c
  9.     )
  10. )
  11. for /f "tokens=1* delims=#=" %%i in ('set #') do (
  12.     set /a n=%%j+1
  13.     md "%var% %%i-!n!"
  14. )
  15. pause
复制代码

TOP

返回列表