加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 按文件夹层次结构重命名文件

发布时间:2020-12-13 22:40:03 所属栏目:Windows 来源:网络整理
导读:我有许多文件具有以下结构: 1969/ar/1.jpg1969/ar/2.jpg1969/he/1.jpg1969/he/2.jpg1969/en/1.jpg1969/en/2.jpg1970/ar/1.jpg 等等… 我想用一个命令将所有这些命令重命名为一个目录,而它们的名称反映其原始文件夹位置. 1969_ar_1.jpg1969_ar_2.jpg1969_he_
我有许多文件具有以下结构:

1969/ar/1.jpg
1969/ar/2.jpg

1969/he/1.jpg
1969/he/2.jpg

1969/en/1.jpg
1969/en/2.jpg

1970/ar/1.jpg

等等…

我想用一个命令将所有这些命令重命名为一个目录,而它们的名称反映其原始文件夹位置.

1969_ar_1.jpg
1969_ar_2.jpg

1969_he_1.jpg
1969_he_2.jpg

1969_en_1.jpg
1969_en_2.jpg

1970_ar_1.jpg

等等…

是否可以使用一个命令或批处理文件执行此操作?

谢谢!

解决方法

您可以使用此命令行将文件移动到基??本文件夹:

for /R %a in (*) do @set f=%a& set f=!f:%cd%=!& move "%a" !f:=_!

从包含1969,1970 …文件夹的文件夹中执行它.重要!:延迟扩展必须处于活动状态才能使此线路正常工作,因此您必须先激活它,并使用/ V开关执行cmd.exe:cmd / V.

例如:

>xcopy test backup /s
test1969ar1.jpg
test1969ar2.jpg
test1969en1.jpg
test1969en2.jpg
test1969he1.jpg
test1969he2.jpg
test1970ar1.jpg
7 File(s) copied

>cd test

>dir /B
1969
1970

>for /R %a in (*) do @set f=%a& set f=!f:%cd%=!& move "%a" !f:=_!

>dir /B
1969
1969_ar_1.jpg
1969_ar_2.jpg
1969_en_1.jpg
1969_en_2.jpg
1969_he_1.jpg
1969_he_2.jpg
1970
1970_ar_1.jpg

以这种方式修改行以将文件移动到另一个文件夹:

for /R %a in (*) do @set f=%a& set f=!f:%cd%=!& move "%a" "otherfolder!:=_!"

或者通过这个批处理文件:

@echo off
setlocal EnableDelayedExpansion
for /R %%a in (*) do set f=%%a& set f=!f:%cd%=!& move "%%a" "otherfolder!:=_!"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读