批处理脚本获取当前目录以及子目录下指定后缀名的文件字节数,并改原文件名添加字节数在后缀名前。

批处理脚本获取当前目录以及子目录下指定后缀名的文件字节数,并改原文件名添加字节数在后缀名前。,第1张

比如处理txt文件

@echo off

cd/d "%~dp0"

for /f "delims=" %%i in ('dir/b/s txt')do ren "%%i" "%%~ni%%~zi%%~xi"

用 %cd% 或 %~dp0 表示 bat 所在文件夹

%~I - 删除任何引号("),扩充 %I

%~fI - 将 %I 扩充到完全合格的路径

%~dI - 仅将 %I 扩充到驱动器号

%~pI - 仅将 %I 扩充到路径

%~nI - 仅将 %I 扩充到文件名

%~xI - 仅将 %I 扩充到文件扩展名

%~sI - 扩充的路径只含有短名

%~aI - 将 %I 扩充到文件的文件属性

%~tI - 将 %I 扩充到文件的日期/时间

%~zI - 将 %I 扩充到文件的大小

其中 I 表示 0~9。bat 执行时可使用 %0、%1、%2、%9 分别代表其命令行参数。%0 是 bat 文件本身的完整路径(第一个参数)。如果你将一个文件拖到 bat 上,那么 %1 就是这个文件路径(第二个参数)。多个参数可以通过在命令行或者运行对话框中,在后面附加,可分别由 %2、%3 等取得。

上面列表中的符号可以进行组合。如 %~dpn1exe。代表扩展第二个参数的驱动器、路径及文件名,并加上 exe。以下是一个简单例子:

@echo off

echo BAT所在驱动器:%~d0

echo 托放到BAT上的文件扩展名改为EXE:%~dpn1exe

pause

执行可以看到效果。

@echo off

for /f "delims=" %%a in ('dir /a-d /b') do (

echo %%~fa

)

pause

dir命令本身做不了这一点(至少我不清楚),但可以和for /f语句配合来做。

dir /ad /b /s E:\CC

可得所有文件夹名。

dir /ad /b /s E:\CC > directory_listbat

可以把文件夹名(含路径)存入文件 directory_listbat

然后再处理。(例如,加入一列 rmdir 到 directory_listbat 中,再执行 directory_listbat)。

先删了E:\CC 再 mkdir CC 最方便,为什么要舍近求远呢?

天空一滴云,你好,思路是这样的,遍历A目录下所有的文件夹,用move命令将文件夹里的文件都移动到A文件夹内,这个批处理放在和A同级目录,然后执行就可以了

rem

移动文件

for

/f

"tokens=

delims="

%%n

in

('dir

"A"

/b/ad')

do

(

for

/f

"tokens=

delims="

%%a

in

('dir

"%%n"')

do

(

move

"%%a"

"A"

)

)

rem

删除空目录

for

/f

"tokens=

delims="

%%n

in

('dir

"A"

/b/ad')

do

(

rd

"%%n"

)

以上就是关于批处理脚本获取当前目录以及子目录下指定后缀名的文件字节数,并改原文件名添加字节数在后缀名前。全部的内容,包括:批处理脚本获取当前目录以及子目录下指定后缀名的文件字节数,并改原文件名添加字节数在后缀名前。、用批处理怎么定位自己的目录、批处理中如何用dir来显示当前目录下的文件名和路径,不包含要子目录中的东西,只要当前目录的文件名和路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9783957.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存