windows 如何使用.bat文件删除多个文件夹名称中的特定部分?

ma8fv8wu  于 2023-01-27  发布在  Windows
关注(0)|答案(1)|浏览(249)

我所在的大学使用的是一个专有系统,该系统以非常特殊的方式输出数据,其中每个“模块”都按照以下结构(4位数字)-(模块名称)输出到文件夹中
例如:5574-化学品104
我需要删除名称和连字符,以便只保留数字:5574-化学品104〉5574
问题是有成千上万个这样的文件夹,我不可能手工完成。我很难尝试自动化这个过程,所以如果有人能至少指出一个命令,我可以看看它会有很大的帮助
我试过REN命令,把“REN 5574-CHEM 1045574”,但它只适用于一个文件夹。有数以千计的文件夹,每一个不同的数字,在“CHEM 104”下,例如,我需要程序重命名文件夹,无论原来的名称为前4个原始数字,我不能弄清楚。谢谢!

nue99wik

nue99wik1#

@ECHO OFF
SETLOCAL
rem The following setting for the directory is a name
rem that I use for testing and deliberately includes spaces to make sure
rem that the process works using such names. These will need to be changed to suit your situation.

SET "sourcedir=u:\your files"
FOR /f "delims=" %%e IN (
 'dir /b /ad "%sourcedir%\*" '
 ) DO FOR /f "delims=-" %%o IN ("%%e") DO ECHO REN "%sourcedir%\%%e" "%%o"
)

GOTO :EOF
    • 在应用于实际数据之前,始终根据测试目录进行验证。**

所需的REN命令仅用于测试目的。验证命令正确后,将ECHO REN更改为REN以实际重命名目录。
使用目录名称、仅名称(/b)和仅目录(/ad)的列表,使用-作为分隔符对名称进行标记,并使用分配给%%o的标记(默认为第一个标记)执行rename

相关问题