批处理DOS - 重命名文件夹
问题描述:
我想运行批处理文件来重命名所有文件夹只。批处理DOS - 重命名文件夹
比方说,我有以下文件夹和文件:
A1 (Folder)
|----> A1.txt A1.doc
B1 (Folder)
|----> B1.txt B1.doc
C1 (Folder)
|----> C1.txt C1.doc
当我运行批处理文件,“1”应该从文件夹中删除,虽然不是从文件名。 所以,你运行它之后。你会得到这样的:
A (Folder)
|----> A1.txt A1.doc
B (Folder)
|----> B1.txt B1.doc
C (Folder)
|----> C1.txt C1.doc
答
使用for /d
超过目录遍历:
setlocal enabledelayedexpansion enableextensions
for /d %%f in (*) do (
set N=%%f
set N=!N:1=!
ren "%%f" "!N!"
)
这消除任何1
从文件夹名称,但。如果数量不同且只有一个字符长度,您可以执行
set N=!N:~0,-1!
而不是上面的相应位置。
难道你不能用'in(* 1)'来只找到以1结尾的文件夹名? – Neil 2011-03-30 19:50:02
@尼尔:的确,你可以。从问题我有点假设*所有*文件夹以'1'结尾,但。我怀疑被问到的人可以很容易地将其应用于他们的需求,因为这个问题听起来很像“我问了一个完全不同的问题,可能仍然类似我的问题,以至于我得到一个我可以使用的答案”(偶尔会失败:-))。 – Joey 2011-03-30 19:50:49
太棒了,它的作品完美。 – 2011-03-30 19:50:50