计算目录下的文件个数,并添加到目录名中
@ echo off
setlocal enabledelayedexpansion
::变量延迟
for /f %%i in ('dir /a:d /b "%~dp0"') do (
set /a n=0
for /r %%j in ("%%i\*") do (
set /a n+=1
)
::echo.%%i-[!n!]
::上面可以用来检查文件名
ren "%%i" "%%i-[!n!]"
::也可以用move "%%i" "%%i-[!n!]"
)
pause
用于删除以上脚本生成的目录后缀
@ echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir /a:d /b "%~dp0"') do (
for /f "delims=-[" %%a in (^""%%i") do (
:: echo.%%i %%a
ren %%i %%a
)
)
pause
以上脚本有一个比较蛋疼的毛病是,只要文件夹内存在带有文件的子目录,该文件夹就无法改名,显示拒绝访问,无论是使用ren 还是move,尝试在cmd里面测试move语句,一样的状况,似乎是权限问题
按文本新建文件夹
for /f %%i in (dir.txt) do mkdir %%i
pause
按文本改名
for /f %%i in (name.txt) do copy 123.txt %%i.txt
pause
移动子文件夹内文件到脚本目录
for /r . %%i in (*) do move "%%i" .
pause