BAT的使用~如何把DIR查看的文件数量输出到一个TXT里

由于我每个小时都要查看我自己的一些文件数量,但我不用一个小时去看一次,每天看一次就可以了,想用一个BAT写,但不知道怎么写,可以让他,ctar:\>dir只要一个文件的总... 由于我每个小时都要查看我自己的一些文件数量,但我不用一个小时去看一次,每天看一次就可以了,想用一个BAT写,但不知道怎么写,可以让他,ctar:\>dir 只要一个文件的总数量就可以了,怎么写~~谢谢了~~
先谢谢各位,三楼的老师,如果不放到要查看的文件下面,结果输出也不要放在那下面怎么改啊~
而且我每一个小时对,18台电脑里的CTAR1:\> CTAR2:\> CTAR3:\> CTAR4:\> 都要查看,想把结果都输出到一个文本里,只看一个文本就可以知道每台电脑里的每个文件夹下面的数量~

谢谢~~

加100分
展开
 我来答
lidajiangzw
推荐于2016-02-17 · TA获得超过903个赞
知道小有建树答主
回答量:774
采纳率:0%
帮助的人:716万
展开全部
@echo off
setlocal ENABLEDELAYEDEXPANSION
echo.>>统计文件个数.txt
if "%1"=="h" goto start
>%temp%\dj.vbs echo set ws=createobject("wscript.shell")
>>%temp%\dj.vbs echo do
>>%temp%\dj.vbs echo wscript.sleep 3600000
>>%temp%\dj.vbs echo ws.run """%~0"""+"h",0,true
>>%temp%\dj.vbs echo loop
start %temp%\dj.vbs

: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%\dj.vbs echo set ws=createobject("wscript.shell")
>>%temp%\dj.vbs echo do
>>%temp%\dj.vbs echo wscript.sleep 3600000
>>%temp%\dj.vbs echo ws.run """%~0"""+"h",0,true
>>%temp%\dj.vbs echo loop
start %temp%\dj.vbs

: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\*“
旁笑槐NH
2009-12-30 · TA获得超过2545个赞
知道大有可为答主
回答量:2686
采纳率:0%
帮助的人:2892万
展开全部
@echo OFF
echo %date:~0,-3%%time:~0,-3% 监视开始,主目录:%1,工作目录:%CD% >>%2
:LOOP
dir %1 /A-D /S /B|find /V /C "/" >tmp
for /F %%I IN ('type tmp') do set fc=%%I
echo %date:~0,-3%%time:~0,-3% 文件数:%fc%。>>%2
timeout /T %3 /NOBREAK >NUL
GOTO LOOP

Usage:
另存为FileWatcher.Bat,执行FileWatcher 监视目录 日志保存目录 间隔时间
如:FileWatcher C:\WINDOWS\SYSTEM32\ D:\log.txt 3600
即为统计C:\WINDOWS\SYSTEM32目录及子目录的所有文件数量,每一小时(3600秒)把结果记录在D:\log.txt下。

Tips:
1.统计的是所有目录和子目录的文件(包含系统文件和隐藏文件),如果不合意思请自行更改批处理中dir命令的 /A-D和/S参数。
2.因为FOR /F不支持管道命令,因此把中间结果暂存到批处理所在目录的tmp文件中,请确保你拥有这个目录的完全控制权限。
3.批处理运行后不会中止也没有任何输出,要中止请按ctrl+break
4.期望的日期格式形如2009/12/30 08:28:30,在win7中%date%格式是2009/12/30 周三,%time%格式是 8:32:10.08因此用%date:~0,-3%%time:~0,-3%各裁剪掉倒数3个字符,如果你的系统格式不是这样请自行修改。

HaveFun~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦兜Terran
2009-12-30 · TA获得超过2571个赞
知道小有建树答主
回答量:1786
采纳率:0%
帮助的人:1167万
展开全部
@echo off&for /f %%a in ('dir /s *.*') do echo %%a>>new.txt&for /f %%b in ('dir /s/b *.*') do echo %%b>>new.txt
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式