
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1"=="h" goto start
>%temp%\\djvbs echo set ws=createobject("wscriptshell")
>>%temp%\\djvbs echo do
>>%temp%\\djvbs echo wscriptsleep 3600000
>>%temp%\\djvbs echo wsrun """%~0"""+"h",0,true
>>%temp%\\djvbs echo loop
start %temp%\\djvbs
:start
for /f %%i in ('dir /b /a-d') do (
set /a s+=1
)
set /a s=s-2
echo %date% 系统时间%time:~0,5% 统计给文件夹下有: %s% 文件>>统计文件个数txt
说明:上面是一个小时统计一次 批处理文件 所在 文件夹里面 的文件的 个数,统计数放在 叫 ”统计文件个数“里面的,
如果要改变统计时间 把上面的 3600000 数值改成你要统计时间的数值,该单位是毫秒,3600000就表示1个小时,3600000毫秒,如果是一秒,就改成 1000。
把上面的代码复制到记事本里面,保存为bat的格式,然后把该批处理文件放在要统计的文件夹里面,
注意:我把 该批处理文件和上面的统计数值的文件排除了,所以只统计你文件下的文件个数,不会统计这两个文件。
补充说明:要是该批处理不放在查看的文件夹下,就必须要写出统计的文件夹的路径,假如要查看c:\\windows 下面的文件个数,就该上面的for /f %%i in ('dir /b /a-d')中()里面的内容,那么就是 ('dir /b /a-d c:\\widows\\'),是不是只加了个 c:\\windows\\ ,就是这样,只加这个,是通配符,表示所有文件。所以就写在这里。
要改变输入内容的文件,假如把上面的 “统计文件个数txt”这个文件保存在 c: 下,那么上面的只改有 “统计文件个数txt”字符的地方,把前面加上输入的路径就行的,那么就是
c:\\统计文件个数txt
,好,就是这样,
上面的代码就是这样:
@echo off
setlocal ENABLEDELAYEDEXPANSION
echo>>c:\\统计文件个数txt
if "%1"=="h" goto start
>%temp%\\djvbs echo set ws=createobject("wscriptshell")
>>%temp%\\djvbs echo do
>>%temp%\\djvbs echo wscriptsleep 3600000
>>%temp%\\djvbs echo wsrun """%~0"""+"h",0,true
>>%temp%\\djvbs echo loop
start %temp%\\djvbs
:start
for /f %%i in ('dir /b /a-d c:\\windows\\') do (
set /a s+=1
)
echo %date% 系统时间%time:~0,5% 统计给文件夹下有: %s% 文件>>c:\\统计文件个数txt
注释:没有set /a s=s-2 ,因为刚是把该文件放在一个文件夹下的,所以要减去批处理和统计文件这两个文件 。
特别注意的是,如果上面改写的文件路径中有空格,必须用“”括起来,比如
C:\\Documents and Settings\\Administrator\\桌面 这个路径,其中Documents and Settings 中就有空格,所以要加“”,所以就是 “C:\\Documents and Settings\\Administrator\\桌面”上面()里面那个路径有空,也要加上“”,所以就是
”c:\\windows\\“
放在“我的文件”里执行。
@echo offfor /d %%a in () do (
pushd "%%a"&set n=
for /d %%b in () do (
pushd "%%b"
for /f "delims=" %%i in ('dir/ad/s/b') do set/a d+=1
for /f "delims=" %%i in ('dir/a-d/s/b') do set/a f+=1
call;echo; %%a,%%b,有%%d%%个文件夹和%%f%%个文件
popd
)
popd
)
pause&exit
不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xxbat,编码选ANSI,跟要处理的文件放一起运行@echo off
rem 获取一个txt文本文件的字符个数/字数
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "file=1txt"
powershell -NoProfile -ExecutionPolicy bypass ^
$text=[IOFile]::ReadAllLines('%file%',[TextEncoding]::Default);^
[regex]::matches($text,'[^^\s]')count;
echo;%#% +%$%%$%/%@% %z%
pause
exit
把下面的批处理存为countfilebat,在批处理中输入“countfilebat 文件夹路径”,程序会统计出该文件夹下有多少文件。
@echo off
@setlocal ENABLEDELAYEDEXPANSION
@set num=0
@for /f "delims=" %%i in ('dir %1 /a-d /b /s') do @set /a num+=1
@echo %1中共有%num%个文件。
@echo off
for /f %%a in ('type %1') do set /a v+=1
echo 执行的是 %1
echo 该文件有 %v% 行字符!
pause
直接把文件拖到该批处理图标上就行了,结果就会显示出来的,
不用先运行该批处理,在把文件拖到命令窗口中去,在按 回车那么麻烦。
tree命令列目录
为什么不直接用tree命令,还能显示目录树结构。
C:\>tree /
以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A]
/F 显示每个文件夹中文件的名称。
/A 使用 ASCII 字符,而不使用扩展字符。
以上就是关于BAT的使用~如何把DIR查看的文件数量输出到一个TXT里全部的内容,包括:BAT的使用~如何把DIR查看的文件数量输出到一个TXT里、求批量统计子文件夹数量和文件数量的批处理bat命令生成TXT文本、bat文件怎么数出一个txt文件中的字数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)