1. 首页 > 科技

[求助]批量创建文件夹的父文件夹,并且修改文件名一致 文件夹批量重命名序号

[求助]批量创建文件夹的父文件夹,并且修改文件名一致文件夹批量重命名序号

批处理修改文件夹内文件名称和文件夹名称一样

@echo off

SET "path=D:\TEST"

cd /d "%path%"

for /r /d %%a in (*) do (

pushd "%path%"

cd /d "%%a"

set /a num=0

for /f %%i in ('dir /a /b /s') do (

set /a num+=1

set "name=%%i"

setlocal enabledelayedexpansion

ren "%%i" "%%~na_!num!%%~xi"

endlocal

)

popd "%path%"

)

pause测试时,对应文件夹下的MP4文件是无序的,如果你的文件是有序的,这个脚本可能会打乱原来的视频顺序。想要完善,除非提供视频的命名规则,加以修改。

测试,运行脚本前:      

运行脚本后:

怎样实现批量重命名文件名为父文件夹名字加序号

我们知道在批处理中要批量处理的话,那肯定是少不了用for命令的。

现在我们把他的要求分解成两部分

1、先用dir命令把所有要进行重命名的文件的全路径列出来发送到一个临时的文本文件。

(供下面的for语句来读取)

2、用for命令来读取那个由dir命令生成的列表文件

a、在循环的过程中取得上级文件夹名

b、取得文件名

c、ren "源文件名" "上级文件夹名文件名"

上面就是伪代码,接下来是批处理的实现代码

@echo off

rem 生成临时列表文件

dir d:\*.txt /s /a-d /b>>tmp.txt

rem 用for命令来读取那个由dir命令生成的列表文件

FOR /F "tokens=*" %%a IN (

'more tmp.txt'

) DO (

rem 用Setlocal来启用环境变量延迟功能

Setlocal EnableDelayedExpansion

rem 取得路径包括了最后一个斜线\

set tempPath=%%~dpa

rem 把路径中的最后一个斜线去掉

set tempPath=!tempPath:~,-1!

rem 在for命令中来扩展取得路径名

FOR %%A IN (

"!tempPath!"

) DO (

rem 扩展取得上级目录名

set filePath=%%~nA

rem 新的文件名为: 上级目录名文件名

set new_name=!filePath!%%~nxa

rem 重命名文件名(为了安全,这里只是用echo把命名的

rem 语句显示出来)

rem 如果要进行重命名的话,把echo 去掉就可以了

echo ren "%%a" "!new_name!"

)

ENDLOCAL

)

rem 删除临时文件

del tmp.txt /q 1>nul 2>nul

pause

电脑高手请进:如何批量对若干文件建立同名的文件夹,且文件放置在同名文件夹里?

简单,方法如下:

首先,把所有文件放入一个文件夹中。

然后选中所有这些文件,右键,用Winrar压缩(带菜单的那种……),再压缩选项中点,文件,再选中压缩成单独文件包。确定后,压缩完全。

然后,选中多个压缩文件,右键,选择解压到单独的文件夹中,就可以了。

如何有效地将大量拥有相同文件名的文件重命名并且放到同一个文件夹中?

选择文件夹内所有文件

右键

重新命名

回车

依次操作这5个文件夹,然后再将他们转移到同意文件夹