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

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

谢谢~~

加100分

@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\*“
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-12-30
@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~
第2个回答  2009-12-30
@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

BAT的使用~如何把DIR查看的文件数量输出到一个TXT里
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 ,因为刚是把该文件放在一个文件夹下的,所以要减去批处理和统计文件这两个文件 。特...

BAT的使用~如何把DIR查看的文件数量输出到一个TXT里
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 ,因为刚是把该文件放在一个文件夹下的,所以要减去批处理和统计文件这两个文件 。特别注...

请问怎么用dos把一个文件夹下的所有文件名打印到txt文件里
1.点开始—程序—附件—记事本,输入下面一行:dir \/b \/o:n>文件名.txt 2.点文件保存,保存类型选择所有文件,保存位置选择那个文件夹,文件名输入:1.bat,点保存。3.双击那个文件夹下面的1.bat文件,生成的“文件名.txt”就是你要的文件。命令行解释:dir - 指定要列出的驱动器、目录和\/或文...

bat批处理文件结果导出到txt
将输出到屏幕的内容用重定向命令可以输出到指定的文本文档中。例入:dir >> d:\\list.txt >> 即是重定向命令,一个> 是重定向到输出文件,更新输出文件的全部内容为当前输出的内容,两个>>是把当前命令的输出重定向到指定的文件,并追加在文件末尾。根据这个,你应该知道怎么修改你的BAT了吧。具体...

bat脚本如何把dir命令的输出结果存放在一个变量里??
把echo写进for命令中 setlocal enabledelayedexpansion set FILES= for \/f "delims=" %%i in ('dir \/b') do (set FILES=!FILES! %%i echo !FILES!)

如何把文件夹或文件名提取到另一个文件里
步骤1、新建一个文本文档(txt格式)步骤2、打开输入以下内容 “dir\/b>1111.xls”注意不要引号,然后点选另存为,“文件名”栏改为“提取文件名.bat”注意要去掉txt后缀,文件类型改为所有,即可。步骤3、复制到任何需要生成目录的文件夹 步骤4、双击运行 注意:喜欢生成文本文件的用“.txt”。笔者...

如何使用bat命令将批量文件夹内的几个文件都复制在一个文件夹内
:Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%rootpath%'"echo;%#% +%。%%。% %z%pauseexit#>Add-Type -TypeDefinition @'using System;using System.Collections.Generic;using System.Runtime.InteropServices;public static class ExpDir{ [DllImport(...

如何把一个文件夹内的文件名导出到一个txt文件
命令提示符下用tree命令 比如说你的文件夹是d:\\test,那在命令提示符下输入 tree "d:\\test" \/f > d:\\1.txt

求批量统计子文件夹数量和文件数量的批处理bat命令生成TXT文本
放在“我的文件”里执行。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+=1for \/f "delims=" %%i in ('dir\/a-d\/s\/b') do set\/a f+=1call;echo; %%a,%%b,有%...

把多个文件夹内的文件批量复制到同一个文件夹内
我们新建一个文件夹,命名为所有文件,如下图所示 我们接着新建一个文本文档,命名为所有文件.txt 我们打开文本文档所有文件.txt ,输入for \/f "delims=" %%p in ('dir \/b\/ad') do copy %%p\\*.* C:\\Users\\Administrator\\Desktop\\测试文件夹\\所有文件。PS:这里的C:\\Users\\...

相似回答