Windows CMD-如何将所有子文件夹中的所有文件重命名为父文件夹名称

寻热者86

好的脚本编写者,

我仍在努力将自己的头缠在FOR命令周围。我想做的就是将所有子文件夹中的所有文件重命名为它们所在的文件夹名称,并保留其扩展名。我想像可以用类似的方法做到这一点:

   For /R %X in (*.*) do REN %X <argument for parent folder name>

也许我错了。正确的方法是什么?它必须是一个脚本。我没有询问批量重命名实用程序或文件重命名豪华版等。

谢谢你的时间!

德本纳姆

仅当每个文件夹中的任何给定类型的文件数量都超过一个时,您才可以实现既定目标。除非有异常情况,否则这不是合理的期望。

但是可以在每个文件的前面插入父文件夹的名称-类似于
"fileName.ext" --> "parentFolderName_fileName.ext"

FOR /R命令可以迭代根树中所有文件夹的文件夹路径。

DIR /B /A-D "folderPath"命令可以列出文件夹中的所有文件。但是,您不想重命名以父文件夹名称开头的Aready文件,因此可以将其通过管道传递给FINDSTR以排除已重命名的文件。

可以使用FOR / F迭代管道命令的结果。EOL和DELIMS选项用于确保保留每个文件的全名。

%%~nxD只返回文件夹的名字和父文件夹的扩展。

将所有内容放在一起,可以在命令行上直接使用以下一个长的衬纸。它将处理以当前目录为根的树。

for /r %D in (.) do @for /f "eol=: delims=" %F in ('dir /b /a-d "%D" 2^>nul^|findstr /vbic:"%~nxD_"') do ren "%D\%F" "%~nxD_%F"

可以将命令放在脚本中,然后可以将要处理的根文件夹作为参数传递。如果未提供任何参数,则脚本将从当前目录开始处理。如果提供了一个参数,则将该值用作根文件夹。

@for /r %1 %%D in (.) do @for /f "eol=: delims=" %%F in (
  'dir /b /a-d "%%D" 2^>nul^|findstr /vbic:"%%~nxD_"'
) do ren "%%D\%%F" "%%~nxD_%%F"

如果使用我的JREN.BAT正则表达式重命名实用工具,则代码会更简单它是纯脚本(混合批处理/ JScript),可从XP开始在任何Windows计算机上本地运行。不需要第三方exe文件。

完整的文档嵌入在实用程序中-可通过jren /?jren /??如果要分页输出来访问。

以下简单命令将处理以当前目录为根的树:

for /r %F in (.) do @call jren "^" "%~nxF_" /p "%F" /fx "%~nxF_*"

前两个JREN参数是查找/替换字符串-搜索匹配文件名的开头,替换仅插入父文件夹名(带有下划线)。/P "%F"选项指定根文件夹。并且该/FX "%~nxF_*选项不包括已经以父文件夹名称开头,后跟下划线的文件。

可以将命令放在批处理脚本中,该脚本接受可选的根文件夹作为参数(如果未提供值,则处理当前目录):

@echo off
for /r %1 %%F in (.) do call jren "^" "%%~nxF_" /p "%%F" /fx "%%~nxF_*"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Windows CMD:为文件夹中的所有文件夹添加后缀

Windows CMD:将后缀添加到文件夹中的所有文件

Windows-如何将子文件夹中的所有文件移动到父文件夹?

Tesseract-OCR可以在Windows cmd的所有子文件夹中批处理文件?

Windows CMD:为所有子文件夹添加带空格的后缀

Windows CMD-根据文件夹名称重命名文件

Windows-7,Windows资源管理器-查找未命名为debug的文件夹中的所有文件

Windows 中文件夹及其子文件夹中的所有文件的列表

以cmd列出所有文件夹和子文件夹,但不列出文件

如何在 Windows 中使用命令提示符将我的文件夹及其任何子文件夹重命名为小写?

Windows命令行:将所有子文件夹的内容移到父目录

在Windows 7中的特定文件夹中打开CMD

如何根据文件名将文件分类到文件夹中-Windows CMD

命令列出文件夹中的所有文件以及Windows中的子文件夹

使所有名为“abc”的子文件夹及其内容可写 - Windows

Windows批处理文件:转换子文件夹中的所有文件

Windows CMD或BATCH文件“标记”空文件夹(和仅包含空文件夹的文件夹)

打印目录树,但排除Windows cmd上的文件夹

从CMD更改位置“下载”文件夹-Windows 8.1

Windows cmd删除每个bin和obj文件夹

在CMD Search中排除Windows文件夹

在Windows 10中,如何将文件重命名为包含带有变音符的字符的文件名?

在 Windows CMD 中重命名文件列表

Windows cmd按文件类型对文件排序并将其存储在文件夹中

如何打开Windows CMD,使其在当前文件夹中启动?

Windows 7 CMD:处理文件夹而忽略以“。”开头的文件夹。

递归地将文件夹名称附加到其中的文件并将所有文件移动到基本文件夹 Windows 批处理文件

XCOPY仅能从父文件夹及其所有子文件夹到Windows中的新文件夹的文件?

Windows 将文件夹中包含一行的所有文件设为只读