BAT的使用~如何把DIR查看的文件数量输出到一个TXT里
由于我每个小时都要查看我自己的一些文件数量,但我不用一个小时去看一次,每天看一次就可以了,想用一个BAT写,但不知道怎么写,可以让他,ctar:\>dir只要一个文件的总...
由于我每个小时都要查看我自己的一些文件数量,但我不用一个小时去看一次,每天看一次就可以了,想用一个BAT写,但不知道怎么写,可以让他,ctar:\>dir 只要一个文件的总数量就可以了,怎么写~~谢谢了~~
先谢谢各位,三楼的老师,如果不放到要查看的文件下面,结果输出也不要放在那下面怎么改啊~
而且我每一个小时对,18台电脑里的CTAR1:\> CTAR2:\> CTAR3:\> CTAR4:\> 都要查看,想把结果都输出到一个文本里,只看一个文本就可以知道每台电脑里的每个文件夹下面的数量~
谢谢~~
加100分 展开
先谢谢各位,三楼的老师,如果不放到要查看的文件下面,结果输出也不要放在那下面怎么改啊~
而且我每一个小时对,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\*“
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\*“
展开全部
@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~
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~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
@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
pause
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询