标题: 新手来报道,拿出作品请评
[打印本页]
作者: zzghost
时间: 2006-12-24 06:10
标题: 新手来报道,拿出作品请评
最近为了方便机房老师发送消息,作为管理员的我作了个小东西给她用,请大家评下,最好提出改良方案 小弟谢啦!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
color 9d
@echo off
@attrib 消息发送.bat +h +s
MODE con: COLS=20 LINES=2
MODE con: COLS=21 LINES=3
MODE con: COLS=22 LINES=4
MODE con: COLS=23 LINES=5
MODE con: COLS=24 LINES=6
MODE con: COLS=25 LINES=7
MODE con: COLS=26 LINES=8
MODE con: COLS=27 LINES=9
MODE con: COLS=28 LINES=10
MODE con: COLS=29 LINES=11
MODE con: COLS=30 LINES=12
MODE con: COLS=31 LINES=13
MODE con: COLS=32 LINES=14
MODE con: COLS=33 LINES=15
MODE con: COLS=34 LINES=16
MODE con: COLS=35 LINES=17
MODE con: COLS=36 LINES=18
MODE con: COLS=37 LINES=19
MODE con: COLS=38 LINES=20
MODE con: COLS=39 LINES=21
MODE con: COLS=40 LINES=22
MODE con: COLS=41 LINES=23
MODE con: COLS=42 LINES=24
MODE con: COLS=43 LINES=25
MODE con: COLS=44 LINES=26
MODE con: COLS=45 LINES=25
MODE con: COLS=46 LINES=24
MODE con: COLS=47 LINES=23
MODE con: COLS=48 LINES=22
MODE con: COLS=49 LINES=21
MODE con: COLS=50 LINES=20
@sc config Messenger start= auto
@net start messenger
cls
if exist zto.bat (goto :check) else goto :nozto
:check
if exist to.bat (goto :run) else goto :noto
:nozto
rem 写文件到zto.bat
echo title 发送消息>zto.bat
echo @color 9f>>zto.bat
echo echo off>>zto.bat
echo cls>>zto.bat
echo MODE con: COLS=50 LINES=20>>zto.bat
@echo set tm1=%%time:~0,2%%>>zto.bat
@echo set tm2=%%time:~3,2%%>>zto.bat
@echo set tm3=%%time:~6,2%%>>zto.bat
@echo ECHO #####%%date%% %%tm1%%点%%tm2%%分%%tm3%%秒#####>>zto.bat
echo echo ***@@~~~##★☆☆发送消息☆☆★##~~~@@***>>zto.bat
echo echo 本程序的使用格式如下:>>zto.bat
echo echo.>>zto.bat
echo echo to [计算机名] [消息]>>zto.bat
echo echo.>>zto.bat
echo echo 要返回选择常用请键入"b">>zto.bat
attrib zto.bat +h +s
:noto
rem 写文件至to.bat
echo @ color 9f>>to.bat
echo @ net send %%1 %%2 >>to.bat
echo @ set tm1=%%time:~0,2%%>>to.bat
echo @ set tm2=%%time:~3,2%%>>to.bat
echo @ set tm3=%%time:~6,2%%>>to.bat
echo @ ECHO %%date%% %%tm1%%点%%tm2%%分%%tm3%%秒^>^>记录.txt>>to.bat
echo @echo ☆~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~☆^>^>记录.txt >>to.bat
echo @echo 消息___"%%2"___^>^>记录.txt>>to.bat
echo @echo 发送到了计算机___%%1__^>^>记录.txt>>to.bat
echo @echo.^>^>记录.txt >>to.bat
echo @echo.^>^>记录.txt >>to.bat
echo @echo.^>^>记录.txt >>to.bat
echo @echo.^>^>记录.txt >>to.bat
echo @attrib 记录.txt +h +s>>to.bat
echo cls>>to.bat
echo 消息发送.bat>>to.bat
attrib to.bat +h +s
:run
echo cmd /k 消息发送.bat>b.bat
attrib b.bat +h +s
cls
title 发送消息
@color 9f
echo off
cls
MODE con: COLS=50 LINES=20
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO %date% %tm1%点%tm2%分%tm3%秒
@echo *****************快捷操作********************
@ECHO 1. 试验时间到请各位存盘并随手关闭计算机-到402
@ECHO 2. 请打扫卫生的同学留一下-到402
@ECHO 3. 请不要随地扔垃圾果皮纸屑-到402
@ECHO 6. 退出
@ECHO 7. 显示所有消息记录
@ECHO 8. 显示最近消息记录
@ECHO 9. 清空消息记录
@ECHO 0. 不作选择手动输入发送内容
@SET Choice=
@SET /P Choice=选择:
rem 设定变量"Choice"为用户输入的字符
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
rem 如果输入大于1位,取第1位,比如输入132,则返回值为1
IF /I "%Choice%"=="1" GOTO 1
IF /I "%Choice%"=="2" GOTO 2
IF /I "%Choice%"=="3" GOTO 3
IF /I "%Choice%"=="6" GOTO 6
IF /I "%Choice%"=="7" GOTO 7
IF /I "%Choice%"=="8" GOTO 8
IF /I "%Choice%"=="9" GOTO 9
IF /I "%Choice%"=="0" GOTO 0
else
cmd /k zto.bat
:1
to * 试验时间到请各位存盘并随手关闭计算机
:2
to * 请打扫卫生的同学留一下
:3
to * 请不要随地扔垃圾,果皮纸屑请放到门口的垃圾桶内,谢谢合作!
:6
MODE con: COLS=50 LINES=20
MODE con: COLS=49 LINES=21
MODE con: COLS=48 LINES=22
MODE con: COLS=47 LINES=23
MODE con: COLS=46 LINES=24
MODE con: COLS=45 LINES=25
MODE con: COLS=44 LINES=26
MODE con: COLS=43 LINES=25
MODE con: COLS=42 LINES=24
MODE con: COLS=41 LINES=23
MODE con: COLS=40 LINES=22
MODE con: COLS=39 LINES=21
MODE con: COLS=38 LINES=20
MODE con: COLS=37 LINES=19
MODE con: COLS=36 LINES=18
MODE con: COLS=35 LINES=17
MODE con: COLS=34 LINES=16
MODE con: COLS=33 LINES=15
MODE con: COLS=32 LINES=14
MODE con: COLS=31 LINES=13
MODE con: COLS=30 LINES=12
MODE con: COLS=29 LINES=11
MODE con: COLS=28 LINES=10
MODE con: COLS=27 LINES=9
MODE con: COLS=26 LINES=8
MODE con: COLS=25 LINES=7
MODE con: COLS=24 LINES=6
MODE con: COLS=23 LINES=5
MODE con: COLS=22 LINES=4
MODE con: COLS=21 LINES=3
MODE con: COLS=20 LINES=2
exit
:7
记录.txt
goto run
:8
type 记录.txt
PAUSE
b.bat
:9
echo 确认要这么做请任意键,否则连续按下ctrl+c两次回选单
@echo
rem 响铃
PAUSE
attrib 记录.txt -h -s -a
attrib *.bak -h -s -a
@copy/y 记录.txt + *.bak %tm1%-%tm2%-%tm3%.ba_
@del *.bak
@ren *.??_ *.??k
@attrib %tm1%-%tm2%-%tm3%.bak +h +s +a
@echo %date% %tm1%点%tm2%分%tm3%秒 前记录已清空!>记录.txt
echo 操作已经完成!~
attrib 记录.txt +h +s +a
PAUSE
:0
cmd /k zto.bat
~~~~~~~~~~~~~~~~
下载地址:
http://zhenlove.com.cn/cndos/fil ... 『最终版』.rar
[
Last edited by zzghost on 2006-12-23 at 05:19 PM ]
作者: electronixtar
时间: 2006-12-24 06:45
为什么不用 for 呢~
作者: zzghost
时间: 2006-12-24 07:08
HAI 还没有学会for的用法
帮我弄下我看看是怎么用
[
Last edited by zzghost on 2006-12-23 at 06:12 PM ]
作者: lxmxn
时间: 2006-12-24 12:27
不用for就是纯体力活了。呵呵~
作者: hake
时间: 2006-12-24 21:49
能不能用下面几个语句代替那一大串
for %%a in(20,1,50)do MODE con: COLS="%a"
for %%b in(3,1,21)do MODE con: LINES="%b"
我是菜鸟,刚学,连for的基本格式也不懂,这是我评我的主观意识写的,希望大家多多修改!
作者: zzghost
时间: 2006-12-25 04:05
测试的时候说 是“此时不应该有(20” 就这样
其他还有没有什么意见建议啊 给点啊
作者: hake
时间: 2006-12-25 04:58
我测试的时候也会出现这个东西,不清楚
作者: lxmxn
时间: 2006-12-25 06:02
Quote: |
MODE con: COLS=20 LINES=2
MODE con: COLS=21 LINES=3
MODE con: COLS=22 LINES=4
MODE con: COLS=23 LINES=5
MODE con: COLS=24 LINES=6
MODE con: COLS=25 LINES=7
MODE con: COLS=26 LINES=8
MODE con: COLS=27 LINES=9
MODE con: COLS=28 LINES=10
MODE con: COLS=29 LINES=11
MODE con: COLS=30 LINES=12
MODE con: COLS=31 LINES=13
MODE con: COLS=32 LINES=14
MODE con: COLS=33 LINES=15
MODE con: COLS=34 LINES=16
MODE con: COLS=35 LINES=17
MODE con: COLS=36 LINES=18
MODE con: COLS=37 LINES=19
MODE con: COLS=38 LINES=20
MODE con: COLS=39 LINES=21
MODE con: COLS=40 LINES=22
MODE con: COLS=41 LINES=23
MODE con: COLS=42 LINES=24
MODE con: COLS=43 LINES=25
MODE con: COLS=44 LINES=26
MODE con: COLS=45 LINES=25
MODE con: COLS=46 LINES=24
MODE con: COLS=47 LINES=23
MODE con: COLS=48 LINES=22
MODE con: COLS=49 LINES=21
MODE con: COLS=50 LINES=20 |
|
这部分用下面的代码来代替比较简洁吧。
set a=20 b=2
:begin
mode con cols=%a% lines=%b%
set/a a+=1
set/a b+=1
if %a% equ 50 goto :end
goto :begin
:end
set a=
set b=
pause
[
Last edited by lxmxn on 2006-12-24 at 07:08 PM ]
作者: hake
时间: 2006-12-25 06:37
Quote: |
Originally posted by lxmxn at 2006-12-24 05:02 PM:
这部分用下面的代码来代替比较简洁吧。
[code]
set a=20 b=2
:begin
mode con cols=%a% lines=%b%
set/a a+=1
set/a b+=1
if %a% equ 50 goto :end
goto ... |
|
简洁,但不简单。
我想请教下,如果用for语句呢?怎么写?
作者: lxmxn
时间: 2006-12-25 06:46
Quote: |
Originally posted by hake at 2006-12-24 17:37:
简洁,但不简单。
我想请教下,如果用for语句呢?怎么写? |
|
用for将会比这个复杂,不信你自己试试就知道了。
作者: hake
时间: 2006-12-25 07:04
Quote: |
Originally posted by lxmxn at 2006-12-24 05:46 PM:
用for将会比这个复杂,不信你自己试试就知道了。 |
|
对我来说难,还是要麻烦你啊!
作者: hake
时间: 2006-12-25 07:10
如果要用for语句来写,在语句中怎么执行
mode con cols=
作者: lxmxn
时间: 2006-12-25 07:31
@echo off
setlocal EnableDelayedexpansion
for /l %%a in (20,1,50) do (
set /a a=%%a
set /a b=!a!-18
mode con cols=!a! lines=!b!
)
pause
作者: redtek
时间: 2006-12-25 09:03
楼主这个想法有意思~:)
@ECHO 1. 试验时间到请各位存盘并随手关闭计算机-到402
@ECHO 2. 请打扫卫生的同学留一下-到402
@ECHO 3. 请不要随地扔垃圾果皮纸屑-到402
@ECHO 6. 退出
@ECHO 7. 显示所有消息记录
@ECHO 8. 显示最近消息记录
@ECHO 9. 清空消息记录
@ECHO 0. 不作选择手动输入发送内容
作者: zzghost
时间: 2006-12-26 03:24
谢谢大家的指点,但是如果我就要象我那种有一个回弹效果又要怎么遍?
14楼的兄弟,因为这个机房的老师是一个中年女士 所以~~~~
作者: hake
时间: 2006-12-26 11:42
Quote: |
Originally posted by lxmxn at 2006-12-24 06:31 PM:
@echo off
setlocal EnableDelayedexpansion
for /l %%a in (20,1,50) do (
set /a a=%%a
set /a b=!a!-18
mode con cols=!a! lines=!b!
)
pause [/colo ... |
|
color 9d
@echo off
@attrib 消息发送.bat +h +s
for /L %%a in (20,1,50) do (mode con:cols="%%a")
for /L %%b in (2,1,20) do (mode con:lines="%%b")
这是我写的,一直不行,看来我要好好去研究下了!
作者: hake
时间: 2006-12-26 11:43
Quote: |
Originally posted by lxmxn at 2006-12-24 06:31 PM:
@echo off
setlocal EnableDelayedexpansion
for /l %%a in (20,1,50) do (
set /a a=%%a
set /a b=!a!-18
mode con cols=!a! lines=!b!
)
pause [/colo ... |
|
setlocal EnableDelayedexpansion这是什么意思?
作者: 13514975717
时间: 2006-12-26 18:41
学习中
作者: lxmxn
时间: 2006-12-27 09:00
Quote: |
Originally posted by hake at 2006-12-25 22:43:
setlocal EnableDelayedexpansion这是什么意思? |
|
请在本论坛搜索"变量延迟"。
作者: jckjuc
时间: 2007-2-1 03:43
lxmxn 管理员真的很牛X 佩服
作者: electronixtar
时间: 2007-2-1 04:22
Quote: |
Originally posted by jckjuc at 2007-2-1 03:43:
lxmxn 管理员真的很牛X 佩服 |
|
lxmxn什么时候成管理员的呢?
作者: lxmxn
时间: 2007-2-2 11:26
Quote: |
Originally posted by electronixtar at 2007-1-31 15:22:
lxmxn什么时候成管理员的呢? |
|
嘿嘿,我的自定义头衔~迷惑了不少观众吧?
作者: electronixtar
时间: 2007-2-2 11:36
Quote: |
Originally posted by lxmxn at 2007-2-2 11:26:
嘿嘿,我的自定义头衔~迷惑了不少观众吧? |
|
寒一个!~~会遭到误会的
作者: binghuochanmian
时间: 2007-3-29 14:21
似乎在批处理中不可以说中文,为什么?
作者: 9527
时间: 2007-3-29 23:21
如果真是想完成LZ的要求,我想你们各位还是先仔细看下他的要求才是
MODE con: COLS=35 LINES=17
MODE con: COLS=36 LINES=18
MODE con: COLS=37 LINES=19
MODE con: COLS=38 LINES=20
MODE con: COLS=39 LINES=21
MODE con: COLS=40 LINES=22
MODE con: COLS=42 LINES=24
MODE con: COLS=43 LINES=25
MODE con: COLS=44 LINES=26
MODE con: COLS=45 LINES=25
MODE con: COLS=46 LINES=24
MODE con: COLS=47 LINES=23
MODE con: COLS=48 LINES=22
MODE con: COLS=49 LINES=21
MODE con: COLS=50 LINES=20
看看他LINES的值
[
Last edited by 9527 on 2007-3-29 at 11:25 PM ]
作者: wsy1986
时间: 2007-3-30 02:14
不懂....
作者: yhl
时间: 2007-3-31 13:53
8错
作者: yhl
时间: 2007-3-31 13:55
8错
作者: jickyli
时间: 2007-3-31 15:01
学习中。。。
作者: lxmxn
时间: 2007-4-1 23:39
果然如 9527 所说,lines的值先递增后递减,看来偶看错啦。
作者: kenshu
时间: 2007-4-2 10:13
不错..好多厉害的朋友~~
作者: jinstar211
时间: 2007-4-3 06:51
我是新手,过来学习一下啊!~