如何批量重命名的子文件夹中的文件 - 使用CMD命令提示符(How to bulk rename f

2019-11-02 02:49发布

我很新的命令提示符(Windows),可是,我却用它做一些文件扩展名发生变化,它是非常有用的。 我知道编码什么,所以我只是要断我所了解,但我正在寻找一个命令行,我似乎无法找到任何地方。 我有文件夹,该文件夹内从1-70由多个标记70个个子文件夹,每个。 这些子文件夹里面是大约20个PNG图片文件,目前由一些PNG格式,编号为1-20。 我要寻找一个命令行从原来的名称每个文件重命名为“文件夹名称(页码)png格式”

例如,我有所谓的“68”文件夹,该文件夹内的1.png,2.png,3.png。 我想在命令行到1.png和2.png等..更改为68(1)巴纽和68(2)。 PNG,注意到所述支架和所述文件夹名之间的空间。 很抱歉,如果我已混乱,但我真的很感激它,我已经从之前的StackOverflow了一些非常有益的和快速解答

三江源如果你能帮助我,因为我在这个问题上彻底无望。

Answer 1:

只有运行这个曾经 - 从包含70个文件夹中的文件夹启动它。

@echo off
for /f "delims=" %%a in ('dir /ad /b') do (
pushd "%%a"
for /f "delims=" %%b in ('dir /a-d /b') do ren "%%b" "%%a (%%~nb)%%~xb"
popd
)


Answer 2:

我不是一个非常有经验的bash scriptor,但我想这应该为你做的任务。 我假设你使用的是Linux操作系统。 因此,打开一个文本编辑器,复制以下:

#!/bin/bash

NumberOfFolders=70

for((a=1; a <= NumberOfFolders ; a++))
do
        cd ./$a
        b=1
        while [ -f $b.png ]
        do
                mv "$b.png" "$a($b).png"
                let b=b+1
        done
        cd ..
done

保存这个脚本,你必须在文件夹1-70(并调用它whatever.ssh)。 然后打开一个终端,并写下chmod a+x whatever.ssh和后./whatever.ssh 。 当你在你的问题提出这应该做的工作。



Answer 3:

该方法的一个稍微的改变@foxidrive建议,因此该脚本可以在任何地方运行,而不必解析dir输出:

@echo off
for /r "C:\root\folder" %%d in (.) do (
  pushd "%%~fd"
  for %%f in (*) do ren "%%~ff" "%%~nd (%%~nf)%%~xf"
  popd
)

请注意,这将无法在Windows XP中工作(不知道有关Windows Vista的),由于与扩张的错误*在内部for循环,将导致文件被重命名多次。



文章来源: How to bulk rename files within subfolders - using CMD command prompt