仅使用批处理脚本重命名文件夹

罗克斯塔

例如,我想使用批处理脚本重命名某些文件夹名称,并在其之前添加特定术语

原始文件夹名称:图像、音乐

改为: old_images、old_music

但我不想更改该父目录中的任何文件名

我试着用for

for %%A in (dir /ad *) do (ren %%A old_%%A)

但这东西没有用...

请给出任何解决方案

组合

以及通过你还需要过滤掉其中任何一个已经前缀孩子目录循环old_(除非你真的想比如前缀old_old_old_old_old_,并确保已经与任何前缀名称old_不存在,重命名之前。

以下两个示例处理位于当前目录中的文件,在该行运行时,(请不要假设当前目录是批处理文件所在的目录)。

@For /F "EOL=| Delims=" %%I In ('Dir /B/AD ^| %__AppDir__%findstr.exe /BIV "old_"') Do @If Not Exist "old_%%I" Ren "%%I" "old_%%I"

或者,您可以省略该If命令,如果发生重命名冲突,只需重定向任何错误消息。

@For /F "EOL=| Delims=" %%I In ('Dir /B/AD ^| %__AppDir__%findstr.exe /BIV "old_"') Do @Ren "%%I" "old_%%I" 2>NUL


如果您没有解析当前目录中的目录, (如上) ,您可以直接在命令中插入您的目标:

@For /F "EOL=| Delims=" %%I In ('Dir /B/AD "C:\My Location" 2^>NUL ^| %__AppDir__%findstr.exe /BIV "old_"') Do @If Not Exist "C:\My Location\old_%%I" Ren "C:\My Location\%%I" "old_%%I"

尽管在这种情况下,您最好将该位置定义为变量,以使您的代码更易于修改和重用为模板。

@Set "var=C:\My Location"
@For /F "EOL=| Delims=" %%I In ('Dir /B/AD "%var%" 2^>NUL ^| %__AppDir__%findstr.exe /BIV "old_"') Do @If Not Exist "%var%\old_%%I" Ren "%var%\%%I" "old_%%I"

您可能会注意到2>NUL此版本中的附加内容如果目标目录不存在,这是为了防止任何错误消息通过管道( |)在当前目录版本中,这不是必需的,因为当前目录始终存在。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用批处理脚本重命名文件夹

如何使用批处理脚本重命名多个文件夹和子文件?

用于重命名子文件夹中文件的批处理脚本

如何使用批处理脚本重命名在该文件夹中具有一定数量文件的多个文件夹?

使用文本文件重命名文件夹中的批处理文件

使用批处理重命名用户目录中的文件夹

如何在 Windows 中使用批处理重命名文件夹?

批处理文件以重命名文件夹创建新文件夹

如何使用批处理脚本使用模式重命名文件

使用批处理脚本旋转重命名编号文件

windows的批处理文件使用固定部分添加渐进数重命名多个文件夹

使用新时间戳在循环中创建后重命名文件夹(不久)-批处理文件

批处理文件,用于按日期增量重命名文件/文件夹

批处理文件重命名文件夹中的文件

批处理文件以重命名多个文件并移至文件夹

编写批处理文件以重命名多个文件夹中的文件

批处理文件让用户选择文件夹中的文件然后重命名

批处理文件-命令-用于重命名文件夹的动态输入

重命名子文件夹中的文件并通过批处理覆盖

启动和关闭程序时,如何使批处理文件重命名文件夹?

用于循环文件夹和复制然后重命名的批处理文件

使用批处理脚本打开多个文件夹

如何使用批处理脚本压缩多个文件夹

如何使用批处理脚本重命名仅与另一个目录中相同的文件

Powershell 批处理文件夹重命名项目 - 限制长度和标准化

使用批处理脚本仅打开文件夹中的非零文本文件

批处理文件以将文件内容解压缩到文件夹,并使用zip文件名重命名/前缀内容

使用 VBA 重命名文件夹

批处理文件以从 CSV 读取文件名并重命名文件夹中的文件