关于bat给文件夹内所有文件改名的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:24:51
for /f "delims=" %%i in ('dir /ad/b') do (ren "%%i" "%%ia")

md "contents"

我用这个给所有文件夹后面加"a",

但是每次都是隔一次才好用一次,

这是为什么呢

比如说运行前

contents

第一次运行后(正常)

contents

contentsa

第二次(不正常)

contents

contentsaa

应该是

contents

contentsa

contentsaa

请问高手这是怎么回事

先来解读下你的批处理
for /f "delims=" %%i in ('dir /ad/b') do (ren "%%i" "%%ia")
md "contents"

第一条是给当前文件夹下的所有文件夹重命名为 文件夹名a

当你第一次运行过这批处理才在当前目录下建了一个 contents目录。

当你第二次运行批处理时 contents也在这个重命名之内。所以先把contents 改名为contentsa 然后在新建一个 contents 文件夹

第三次运行批处理时为会错误提示。
比如 二次运行后目录内有 contents contentsa 两个目录
第三次运行当然是先改contents 目录为 contentsa 但contentsa目录已经存在所以会产生错误。。

@echo off
for /f "delims=" %%i in ('dir /ad/b/o-n') do (ren "%%i" "%%ia")
md "contents"

这样就可以了。

@echo off
for /d %%i in (*)do ren "%%i" "%%ia"
echo 全部文件夹都加上A了&pause