导航:首页 > 文件处理 > 批处理读取文件夹大小

批处理读取文件夹大小

发布时间:2022-08-22 21:36:03

1. 批处理检测文件夹大小

批处理练习(3) 文件处理 制作进度条 判断字符长度2011-06-18 18:25题1:批处理修改文件夹名。

在一个历史学院的文件夹里有2530个子文件夹,里面都有这个学院的学生的资料。这些子文件夹是:12位的学生学号和对应学号

的姓名:104052020001陈娜娜 104052020002马克林那 104052020003林肯 。。。。

现在我们只想保留这些学号的后4位,也就是号数如:1 2 3 ......

请写上你的答案,一起分享吧!!

因为原来的文件夹里有内容,所以我们是将源文件夹进行重命名,使用ren

又是对一堆文件夹进行操作,所以使用 for /d

还有就是处理像0010这样的又不能直接%b:0=%所以就想用for /f “tokens=* delims=0”

我就在这个历史学院的文件夹里建立一个批处理,我的代码:

@echo off
setlocal enabledelayedexpansion
for /d %%a in (*) do (
set n=%%a
set nn=!n:~8,4!
for /f "tokens=* delims=0" %%b in ("!nn!") do (
set rn=%%b
ren %%a !rn!
)
)
pause

题2:如何去除文本文档里所有重复的字符串?并进行处理

在1.txt文档里有很多字符串都以空格相连:

1 2 3 6 5656 不要 去死 999

2 我是谁 xx ff不要 999 56565

......

用批处理将没有重复的所有字符串提取出来放在2.txt中。

我的答案:

用定义变量的方法,就是没拿到其中的每一个字符串,是新的就对他进行定义,是已经定义了的就跳过,这就

用到了if not defined 变量名 (定义新字符串 )

那我们如何取得每一个字符串呢?用for /f “delims= ” %%a in (1.txt)这样的话tokens又该怎么办成千上万的字符串啊!

想到因为每个字符串都间都有空格,用没有参数的for就可以取得每一个字符串了。可是没有参数的for在括号里的只能是

字符串啊,我们该如何把1.txt离得内容给放到括号里呢。我是用for /f “delims=”一行一行的放进去的。

我在当前文件夹下建立批处理文件内容如下:

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
for %%b in (%%a) do (
if not defined %%b (
set %%b=1

rem 这里是随意给个值
set /p=%%b <nul
)))>>2.txt

rem 这里如果用>2.txt 试试看会有什么结果说明了什么
pause

如果你觉得在()>>2.txt 很不习惯你也可以在用:set m=!m! %%b 在for前定义一个空变量set "m=" 然后再for后输出m:echo !m!>2.txt

当然了最简单的还是用:set /p=%%b <nul>>2.txt用同行输出再导入2.txt。

好!做到这里就得到了2.txt。可是由于使用set /p=%%b<nul所以所有的字符串都是在同一行虽然分成了很多行,很不美观。

为此我们再来练习一下:就是把上面的2.txt进行整理使之每一行都只有10个字符串。

下面是我的代码:

@echo off
setlocal enabledelayedexpansion
set /a n=0
for /f "delims=" %%a in (2.txt) do (
for %%b in (%%a)do (
set /a n+=1
if !n!==10 (
echo %%b >>1111.txt
set /a n=0
) else (
set /p=%%b <nul>>1111.txt
)))
pause
那如果原来的字符串不是都在同一行的话,也就是每行都有不定个字符串,又该怎么办?把不熟悉的化成熟悉的呗。

不是同一行我们就把它变成同一行(这个也不难),然后就简单喽!

得出了1111.txt。现在我又想从1111.txt中查看一些字符串共出现了多少次。

我的代码如下:

@echo off
setlocal enabledelayedexpansion

echo 从1111.txt中查找字符串出现的次数
set /p cc=您要查找的是:
set /a n=0
for /f "delims=" %%a in (1111.txt) do (
for %%b in (%%a) do (
if "%%b"=="!cc!" (
set /a n+=1
)))
echo 所查找的!cc!共出现了!n!次。
pause

题3:制作一个进度条。

网上好多关于用批处理制作进度条的,于是自己也想试着做一下,刚开始的代码:

@echo off
echo ┏━━━━━━━━━┓
set /p "a= "<nul
for /l %%a in (1 1 10) do (
set /p=■<nul
ping /n 1 192.168.1.106>nul
)
echo.
echo ┗━━━━━━━━━┛
pause

哈哈!!!结果很悲剧!边框都不完整两边都没有,而且是先显示的只有上边框没有下边框。

就想着上网去看,发现看代码真是蛋疼,相当的晕!!!

无奈只好自己慢慢想把。

要想同时显示上下边框这个简单只要把边框全部放入for循环中。

至于显示边框的两边,要结局的就是对其,我就想到用 %变量:~0,数值% 来解决了,但是又发现■占两个空格,这就说明

%%里的数值不是固定植,正好for /l 循环中的数是变化的,就可以拿来用了。

改进后的代码:

@echo off
setlocal enabledelayedexpansion
color 1f
set "nn=■"
for /l %%a in (39 -1 20) do (
cls
rem 刚开始没这个,结果一列下来,悲剧!
set "nnn=!nn! "
set m=!nnn:~0,%%a!
echo ┏━━━━━━━━━━━━━━━━━━━━┓
set /p=┃<nul
set /p=!m!<nul
echo ┃
echo ┗━━━━━━━━━━━━━━━━━━━━┛
set nn=!nn!■
ping /n 2 192.168.1.103>nul
rem 时间延时用,这里ping的地址在测试时自行更换,当然了也可以用for及其他的时间延时方法,很多

rem 可是很多我还不理解,继续学习以后可能也会做个总结。
)
pause

题4:(复习)如何检测给定字符串的长度?

这个做过了,以前不会,现在会了自己也写一写。如下:

@echo off
title 字符长度查看
color 0f
mode con cols=40 lines=25
echo.&echo.
echo ----------------------------
echo.&echo.&echo.&echo.&echo.
setlocal enabledelayedexpansion
set /p b=输入的要判断的字符串:
set a=!b!
:aa
if "!a!" neq "" (
set /a n+=1
set a=!a:~0,-1!
goto aa
)
echo.&echo.&echo.&echo.
echo 您输入的!b!字长为:!n!
echo.&echo.&echo.&echo.&echo.
echo 再见!
echo.&echo.
echo --------------------------<nul
pause>nul

2. 批处理怎样获取文件夹大小

for /f "delims=" %%1 in ('dir d:\wind.txt') do echo.%%~z1
文件变量 是 %%1 得到它的大小就 %%~z1 就可以了
具体见for/?

3. 你好,批处理,怎么提取文件夹及子文件夹分辨率,大小,位深度,谢谢

批量提取指定文件夹下的所有文件名称及其路径使用一个批处理脚本即可轻松实现。
软件工具:win7、文本文档。
1、在指定的文件夹中新建一个记事本(文本文档)。
2、在记事本中输入DIR /S/B >输入路径和文件文件名.TXT,然后保存。
3、将刚才创建的这个记事本的扩展名改.bat。
4、双击打开运行这个.bat脚本,运行时会有个CMD窗口一闪而过。然后得到一个“输入路径和文件文件名.TXT”的文本。
5、打开这个“输入路径和文件文件名.TXT”文本,就可以看到该文件夹中所有文件、文件夹及子文件夹的路径和文件名。里面每一行是一个文件、文件夹的具体路径;最后一个\后面的就是文件名称。

4. 批处理搜索文件并获取文件大小

for%%iin(%alldrive%)doifexist%%i:dir/s/b%%i:|find"%filename%">>results.txt

上面代码改为:

(for%%iin(%alldrive%)do(
ifexist%%i:(
for/f"delims="%%ain('dir/b/s"%%i:\%filename%"2^>nul')doecho,%%a%%~za
)
))>results.txt

5. 批处理 得到文件夹下所有文件大小

@echooff
set/psrc=请输入目标目录或拖动目录至此:
cd/d"%src%"||(pause&goto:eof)
(for/f"delims="%%ain('dir/b/a-d')do(
echo%%a %%~za
))>%~dp0输出.txt

6. 使用批处理获取文件名及文件大小信息

命令行解析
比如我要获取D盘下面w文件夹中的所有图纸,并生成文件列表清单,操作步骤如下:
1、运行CMD
2、变更磁盘文件夹
C:\Documents and Settings\Administrator>d:
D:\>cd\w
D:\w>
3、生成文件列表清单
D:\w>dir/b>d:\list.txt
dir/b表示只显示文件夹中文件的文件名与拓展名
>代表重定向符号
d:\list.txt代表重定向路径及生成的文件列表清单的名称及格式

7. 批处理遍历文件夹获取最小文件大小

@echo off
for /f "delims=" %%f in ('dir /b /a-d /o-s') do (
set z=%%~zf)
echo 最小的文件大小是:%z%
echo.&pause

8. 批处理检测文件夹大小 指定目录 查找文件夹大小小于100M的文件夹,并输出文件夹名、

BAT置于源目录执行,不适用于英文系统

@echooff
set/a"_100MB=100<<10<<10"
for/r/d%%ain(*)do(
for/f"tokens=3delims="%%iin('dir/a/s/-c"%%a"^|find"个文件"')doset"size=%%i"

set/a"size=!size!-%_100MB%"2>nul&&if!size!lss0echo;%%a
endlocal
)
pause

9. 用批处理 怎么获取桌面一个快捷方式的根目录文件夹的大小

@echo off
for /f "delims=" %%i in ('find ":" "%~1" ^|findstr /r "^[A-z]:[\\]"') do (
set filename=%%~dpi
)
set filename=%filename:~0,-1%
for /f "tokens=* delims=" %%j in ('dir /a-d /b /s "%filename%"') do (
set /a num+=%%~zj/1024
)
echo %num%
pause
保存为bat将快捷方式拖入此bat即可获得文件上级目录的大小

10. 如何用批处理获取一个文件的大小

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a-d /b *.*') do (
echo %%i:文件大小=%%~zi字节&echo.
)
pause

阅读全文

与批处理读取文件夹大小相关的资料

热点内容
php多长时间能学会 浏览:308
apex服务器选什么好 浏览:595
nds编译 浏览:110
各个击破法动态规划法贪婪算法 浏览:533
柱端部为什么要加密 浏览:891
c单链表排序算法 浏览:362
python邻接链表 浏览:369
外国解压的视频说话助眠 浏览:115
查看php扩展版本 浏览:239
社保卡加密机放在信息中心 浏览:95
python3爬取网页数据 浏览:621
超级主升幅图公式源码 浏览:22
2核2g服务器有什么用 浏览:494
cad命令栏怎么显示小黑 浏览:742
加密病毒数字币 浏览:152
php读取条码 浏览:922
pdf字太小 浏览:765
单片机计算机教程 浏览:582
gh命令图解 浏览:38
安卓还原网络设置会还原些什么 浏览:432