最近的一些bat小脚本

计算目录下的文件个数,并添加到目录名中

@ 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

猜你喜欢

转载自blog.csdn.net/weixin_43221117/article/details/82895669