Board logo

标题: [文件操作] 【已解决】请教大家一个批处理,如何分割文件夹名称和内部文件名 [打印本页]

作者: lhw    时间: 2023-12-25 22:20     标题: 【已解决】请教大家一个批处理,如何分割文件夹名称和内部文件名

本帖最后由 lhw 于 2023-12-30 22:24 编辑

就是有时候要个不同的人发同样的东西,但是需要标清这个文件是谁给谁的,所以想请问大佬批处理能不能达到以下操作,
比如我有一个文件夹是后勤部小王-财务部小李-电力部小张-人事部小小-公关部老张这样的文件夹,里面文档是后勤部小王-财务部小李-电力部小张-人事部小小-公关部老张.txt,,小王是我自己,想通过批处理达到,后勤部小王-财务部小李是一个文件夹,里面的文档是后勤部小王-财务部小李.txt,其他人的名字也是按照这样分割出来。
有没有大佬能说一下该怎么操作
作者: lhw    时间: 2023-12-25 22:38

大佬,给个思路也行
作者: 77七    时间: 2023-12-25 23:39

本帖最后由 77七 于 2023-12-25 23:42 编辑
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=1* delims=-" %%d in ('dir /b /ad *-*-*') do (
  4. call :1 "%%e"
  5. )
  6. pause & exit
  7. :1
  8. for /f "tokens=1* delims=-" %%x in ("%~1") do (
  9. md "%%d-%%x"
  10. copy "%%d-%%e\%%d-%%e.txt" "%%d-%%x\%%d-%%x.txt"
  11. if "%%y" neq "" (
  12. call :1 "%%y"
  13. ) else (
  14. exit /b
  15. )
  16. )
复制代码


批处理会处理所在目录下所有的 *-*-* 格式文件夹,使用前先测试
作者: qixiaobin0715    时间: 2023-12-26 10:27

本帖最后由 qixiaobin0715 于 2023-12-26 10:50 编辑

回复 1# lhw
你的表述在逻辑上不清楚,可有多种理解。最好在网盘上发一个示范文件夹,原目录是什么样的,处理后的目录又是什么样子。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1* delims=" %%i in ('dir /b /ad') do (
  4.     if not "%%j"=="" (
  5.         set "str=%%j"
  6.         set "str=!str:-= !"
  7.         for %%k in (!str!) do (
  8.             if not exist "%%i-%%j\%%i-%%k"(
  9.                 md "%%i-%%j\%%i-%%k"
  10.                 copy "%%i-%%j\%%i-%%j.txt" "%%i-%%j\%%i-%%k\%%i-%%k.txt"
  11.             )
  12.         )
  13.     )
  14. )
复制代码

作者: jefflo    时间: 2023-12-26 14:42

本帖最后由 jefflo 于 2023-12-26 14:43 编辑

回复 4# qixiaobin0715


绑定,回错了
作者: Batcher    时间: 2023-12-26 20:50

回复 1# lhw


请给一个真实的例子说明一下你的需求吧,比如操作之前是怎样的,操作之后变成啥样?
上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
作者: lhw    时间: 2023-12-30 22:25

谢谢大家的帮助,我的问题解决了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2