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



我的大学正在使用一个专有系统,该系统以一种非常特定的方式输出数据,其中每个"模块"按以下结构输出到文件夹(4位数字)-(模块名)

交货:5574 - chem104

我需要删除名称和连字符,以便只保留数字:5574 - chem104比;5574

问题是这样的文件夹有成千上万个,我不可能手工完成。我在尝试自动化这个过程时遇到了困难,所以如果有人能至少指出一个命令,我可以研究一下,这将大有帮助

我试过REN命令,放"REN 5574-CHEM104 5574",但它只适用于一个文件夹。有成千上万个文件夹,每个文件夹都有不同的数字,例如在"chem104"下,我需要程序将文件夹重命名为无论原始名称为前4个原始数字,这我不知道。谢谢!

@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验证命令是否正确后,将ECHO REN改为REN以实际重命名目录。

使用目录名称列表,仅名称(/b)和仅目录(/ad),使用-作为分隔符对名称进行标记,并使用分配给%%o的令牌执行rename(默认是第一个令牌)

相关内容

  • 没有找到相关文章

最新更新