簡體   English   中英

如何使用 .bat 文件刪除許多文件夾名稱的特定部分?

[英]How can I remove a specific part of many folders names using .bat files?

我的大學正在使用一個專有系統,該系統以非常特定的方式輸出數據,其中每個“模塊”是 output 到結構如下的文件夾中(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 ed 用於測試目的。 驗證命令正確后,將ECHO REN更改為REN以實際重命名目錄。

使用目錄名稱、僅名稱 ( /b ) 和僅目錄 ( /ad ) 的列表,使用-作為分隔符對名稱進行標記,並使用分配給%%o的標記執行rename (默認為第一個標記)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM