按特定条件复制和重命名 - 批量
Posted
技术标签:
【中文标题】按特定条件复制和重命名 - 批量【英文标题】:copy and rename by specific condition - batch 【发布时间】:2020-03-23 04:22:41 【问题描述】:我想递归 copy 和 rename 目录中的所有文件。
我有类似AAAJ_J1DO.docx
的文件模式,但我想通过创建文件夹名称AAAJ
将其更改为AAAJ.docx
条件是在下划线之前找到名称并在重命名文件中的该命名副本中创建文件夹。
以下文件模式示例:
D:\yogib\AAAJ_J1DO.docx
->D:\yogib\AAAJ\AAAJ.docx
D:\yogib\JACCC_loca.docx
->D:\yogib\JACCC\JACCC.docx
D:\yogib\KUJO1_ju2.docx
->D:\yogib\KUJO1\KUJO1.docx
我试过了
xcopy /s/y d:/yogib/*_*.docx d:/yogib/*/*.docx
【问题讨论】:
您的问题与您提供的示例不符。您能解释一下创建的文件夹是这些示例的一部分吗?此外,您的问题与主题无关,本网站不提供免费的代码编写服务。我们希望您已经研究、编写和发布了自己的代码。给出关于它如何无法按书面工作的完整解释,我们应该能够在这个网站上提供帮助。 嗨 compo,问题很简单,我想通过排除下划线后的文本将文件名“AAAJ_J1DO.docx”更改为“AAAJ.docx”并以该名称创建一个文件夹“AAAJ”(之前下划线)并在其中粘贴重命名。希望现在很清楚 喜欢AAAJ_J1DO.docx -> AAAJ\AAAJ.docx
?
文件夹应该在重命名的文件名中
@Yogib 这句话没有任何意义。请提供一个完整的例子,包括之前和之后的文件夹结构。
【参考方案1】:
-
编辑:反映问题的变化。
编辑:删除了不必要的代码。
@echo off
setlocal enabledelayedexpansion
FOR %%A IN (*.docx) DO (
SET name=%%A
for /f "tokens=1 delims=_" %%B in ("!name!") do set prefix=%%B
IF NOT EXIST "!prefix!" MKDIR "!prefix!"
MOVE "!name!" "!prefix!\!prefix!.docx"
)
【讨论】:
以上是关于按特定条件复制和重命名 - 批量的主要内容,如果未能解决你的问题,请参考以下文章