标题: 可否使批命令在特定的时间后(二十分钟)执行
[打印本页]
作者: jamjiajam
时间: 2006-5-9 11:48
标题: 可否使批命令在特定的时间后(二十分钟)执行
我校的多媒体教室硬件损坏严重,作为维护人员,我一直在寻找良策.让学校购买一套软件是最简单的办法,但学校不同意,仅仅是为了省钱.我想可否以批处理 的方式实现学生实名登陆:
多媒体教室共有五十台学生机(98系统)和一台教师机(win2000),每周约有二十节课.但每个星期都发现学生搞破坏:不是鼠标球不见了就是键盘上的几个键被学生撬走了,作为机房维护者,我想:要减少学生的破坏行为,必须利用教师机记录好每节课每台电脑的使用者。(必须以电子文档形式,每台电脑前放个本子让学生登记根本没用)
为实现这一点,我拟采用以下方案:
学生上机 后,必须在桌面新建一个以机号及学生姓名命名的文本文件(内容为空),文本文件命名完毕后自动上传至教师机,也可由教师在 教师机上运行一个批处理来收集学生在桌面新建的文本文档,之后将所有学生的文本文按机号在大屏幕上显示,(便于学生互相监督,促使每个学生用真实姓名命名文本文档),待收集到每位学生的机号及姓名后由教师将这些文本文档保存在特定位置便于机房人员查找破坏硬件者
问题是:教师机用来收集以学生真实姓名命名的文本文档的批处理该怎样写?
谢谢
[
Last edited by jamjiajam on 2006-5-9 at 22:48 ]
作者: 3742668
时间: 2006-5-9 12:43
学生机设置好文件共享,管理机上用copy \\IP\共享 把文件全部拷贝到本机上,可以用for /f(固定IP且有IP列表文件)或者for /(DHCP)l来实现多IP操作。至于屏幕上显示,不知道是在管理机上用投影仪投影到大屏幕上还是学生机上自己显示?如果只是学生机上显示的话用脚本就不行了,随便开一个窗口就把显示的内容挡着了。
用批处理来实现你的目的是很不理想的,破绽太多。建议用专用软件,实在不行下个破解版的网吧管理软件去,用万象应该可以满足你的要求了。
作者: jamjiajam
时间: 2006-5-9 22:20
标题: 谢谢3742668斑竹
问题已初步解决:
步骤如下:
1.教师机(win2k)桌面建立一"上机情况"文件夹(公享,权限为可写入)
2.在学生机(98)上映射该文件夹
3 .学生机桌面上建一BAT文件,该BAT作用是将桌面上的记事本文件复制到映射驱动器中
4.学生上机后先建立或修改桌面记事本文件名(以学生机编号及学生姓名命名)
5.上机学生执行BAT
旧问题解决了,新问题又出来了,新问题如下:
由于多媒体教室每天有多节课,每节课的学生均不相同,教师机就必须保存好每节课每台学生 机的使用人情况(即以学生机编号及学生姓名命名的空白记事本文件),下一节课上课前"上机情况"文件夹中的文件又必须及时剪切到D盘中的上机情况汇总文件夹中(下节课教师机大屏幕上显示的"上机情况"文件夹应该仅为该节课的学生姓名,便于学生互相监督,该文件夹内容如不及时清空,"上机情况"文件夹将同时显示前一班级的用机情况),由上课教师来剪切"上机情况"文件夹中的所有记事本当然也可以,但要花一定的时间.我想通过批命令完成这一工作(教师进入多媒体教室后仅需执行该BAT即可)
该批命令应该实现以下功能:
1.自动打开桌面"上机情况"文件夹,大屏幕显示文件中的所有文件
2.在D盘上机情况汇总文件夹自动建立新文件夹(该文件夹最好以文件夹创立时的日期及时间命名)
3.
在教师执行BAT二十分钟后,该BAT能自动将桌面上"上机情况"文件夹中的所有文件剪切到D盘上机情况汇总文件夹中最新的文件夹总,
不知批处理能否实现以上的两个要求
不知道以上内容表达得清楚与否
最后再次对斑竹及所有浏览本贴的朋友表示刚感谢
[
Last edited by jamjiajam on 2006-5-9 at 22:31 ]
作者: 3742668
时间: 2006-5-10 14:03
1.自动打开桌面"上机情况"文件夹,大屏幕显示文件中的所有文件
可以用start 文件目录 或者 explorer 文件目录来完成。
2.在D盘上机情况汇总文件夹自动建立新文件夹(该文件夹最好以文件夹创立时的日期及时间命名)
可以用 md %date%来建立文件夹。
3.
在教师执行BAT二十分钟后,该BAT能自动将桌面上"上机情况"文件夹中的所有文件剪切到D盘上机情况汇总文件夹中最新的文件夹总
参考命令: ping,at,move
ping 有两个参数,/n 表示次数,-m表示超时时间,组合起来应该可以实现延时的作用。at相当于计划任务,move用来剪贴,或者用copy+del也可
一点建议:对于上机情况中的文件,文件名是学生姓名以及编号的话,可以不用移动这写文件,只需要用dir把所有的文件名写到一文件当作日志就行了。
你参照着自己写一下,如果有什么问题可以把你的代码贴上来大家一起帮你看看。
作者: jamjiajam
时间: 2006-5-10 21:28
标题: 谢谢3742668斑竹的答复
正在尝试,谢谢,
[
Last edited by jamjiajam on 2006-5-10 at 21:41 ]
作者: jamjiajam
时间: 2006-5-11 21:59
标题: 调试
echo off
explorer d:\1
rem 打开D盘1文件夹,该文件夹存放学生当节课上机记录
ping -n 20 127.0.0.1>nul
rem 延时,20秒后执行下一条命令,假定20秒后所有学生均已将含有机号姓名命名的空白文本文件传至d:\1
dir d:\1 /a >d:\本节课上机汇总.txt
rem 将1文件夹中的记事本文件名输出到D盘本节课上机汇总.txt中(用dir把所有的文件名写到一文件当作日志)
copy/b d:\本节课上机汇总.txt+d:\本月上机汇总.txt d:\3.txt
rem 合并,将本节课上机汇总.txt中的内容添加到本月上机汇总.txt,生成3.txt,合并后将3.txt改名为本月上机汇总.txt
del d:\本节课上机汇总.txt,由于本节课上机汇总已添加到本月上机汇总.txt,故可删除
ren d:\3.txt 本月上机汇总.txt
将3.txt改名为本月上机汇总.txt
del d:\1\*.txt
rem 删除d:\1文件夹,该文件夹存放学生当节课上机记录,该文件夹中的所有信息已添加到本月上机汇总.txt
copy d:\2\1.txt d:\ /y
rem 将d盘文件夹2中的1.txt复制到d盘根目录
[
Last edited by jamjiajam on 2006-5-11 at 22:30 ]
作者: jamjiajam
时间: 2006-5-11 22:53
标题: 谢谢您的回复 ,不胜感激
Quote:
错误有没有提示?或者运行后的结果是什么?
可以在ping后面用echo %time% >时间.txt中看时间是否正确,毕竟用ping来延时不是很准确。
谢谢您的及时回复 ,您能看看我的命令中有什么错误吗?ping来延时不是很准确,这倒并不是很重要
运行至“已复制,改写3.txt吗”,输入y后,提示已复制 1个文件“后中断,具体见附件
批命令已改写,可能更易看懂
http://www.cn-dos.net/forum/view ... id=nk0Yxg#pid122034
附件
1:
Doc1.rar (2006-5-11 22:53, 49.41 K, 下载附件所需积分 1点
,下载次数: 63)
作者: 3742668
时间: 2006-5-11 22:58
@echo off
ping 0.0.0.2 -n 1 -w 1200000 rem 延时20分钟
echo %date% %time% >>本节课上机记录.txt
dir d:\1\*.txt /b >>本节课上机记录.txt
type 本节课上机记录.txt >>本月上机记录.txt
del 本节课上机记录.txt
del d:\1\*.txt
主要的要求似乎就是上面的了,酌情修改。
作者: chineselgs
时间: 2006-5-12 17:03
全都是高手啊,领教了!
作者: gwlok
时间: 2006-5-12 22:56
批处理果然历害
作者: icetzy
时间: 2006-5-27 18:05
大家都是高手.呵呵!!哎都比较灵活
作者: AMD666
时间: 2006-5-30 10:02
用命令timeout
C:\>timeout /?
TIMEOUT [/T] timeout [/NOBREAK]
描述:
这个工具接受超时参数,等候一段指定的时间(秒)或等按任意键。它还接受
一个参数,忽视按键。
参数列表:
/T timeout 指定等候的秒数。有效范围从 -1 到 99999 秒。
/NOBREAK 忽略按键并等待指定的时间。
/? 显示该帮助消息。
注意: 超时值 -1 表示无限期地等待按键。
示例:
TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1
时间不够时多用几个
作者: vlq5299
时间: 2006-6-11 18:00
高手啊
作者: flying008
时间: 2006-7-11 18:09
偶用的WIN2000,怎么没有TIMEOUT这个命令?
作者: asbai
时间: 2006-7-11 21:01
用 sleep 命令不是很好吗?
作者: vkill
时间: 2006-8-24 20:23
@echo off
rem 开机10分钟后执行%windir%\*.bat ,xp下测试,时间24小时制
set h=%time:~0,2%
set /a m=%time:~3,2%+20
if %m% GEQ 60 (set /a m=m-60 & set /a h=h+01)
if %m% lss 10 (set /a m=m+10)
if %h% EQU 24 (set a=00)
set xtime=%h%%time:~2,1%%m%
at.exe %xtime% /interactive %windir%\*.bat
[
Last edited by he200377 on 2006-8-29 at 20:17 ]