/ 心弦娱乐网的口袋
>> 网吧技术
! 第一、二、三章简单实例及进阶
解答交流群 47106155
最近确实很忙!没太多时间写东西!今天给大家奉上一篇P处理文章!
网吧用P处理不在是什么新鲜的事情!首先如果大家需要用P处理先了解下面一段代码!
'if 1=2 then Wscript.echo "Impossible!"
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C 路径\批处理程序名", 0, TRUE)
为什么要了解上面一段代码?熟悉的朋友都知道上面代码是 一段VBS代码 其实就是凋用批处理文件! 这样就不会在开机跳出黑色的框框
首先讲第一步:批处理的部署
网吧批处理的部署一般情况很简单! 以下代码
@echo off
ping -n 8 127.0.0.1 >nul
call \\gamesrv\start$\start.bat
这段代码 也很简单 第一行就不讲了 第二行 是 ping 本机 8秒后 执行下一行代码 起主要原因是担心 开机后计算机还没有联网 之间运行第三句的时候 无法连接服务器 导致运行失败!
第三句的意思 就是凋用 gamesrv 上的 start.bat 这个批处理! 也就是说 把这段代码保存为P处理 放到计算机启动后 可以让其每次都从服务器上凋批处理 这样方便大家管理! 怎么方便 后面讲!
第二步:批处理简单应用
1、条件冰点为单机版、为了方便更改桌面项。比如说 网吧新做了个电影服务器 要在客户机桌面上添加
第一步 在服务器上 建立个 DS 文件夹 里面存放桌面上所有的图标 包括新电影 共享名为 DS$
那么在服务器上的start.bat 代码如下
@echo off
del /s /y "%USERPROFILE%"\桌面\
xcopy /s /y \\gamesrv\ds$\ "%USERPROFILE%"\桌面\
代码很简单 这样我们的桌面图标就全部更换完毕了! 其中 "%USERPROFILE%" 为 C:\Documents and Settings\Administrator
其他参照以下代码
ALLUSERSPROFILE=C:\Documents and Settings\All Users
APPDATA=C:\Documents and Settings\Administrator\Application Data
ClusterLog=C:\WINDOWS\Cluster\cluster.log
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=GAMESRV
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
LOGONSERVER=\\GAMESRV
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 107 Stepping 1, AuthenticAMD
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=6b01
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=GAMESRV
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWS
也可以 在开始--运行---cmd----在输入 set 查看!
第三步:安全应用 ARP 攻击属于现在最多的! 现在最好的解决方法是 双绑 最好 还有一些ARP防火墙等
我将一种在双绑基础上更安全的方法 看下面代码
@echo off
arp -s 0.0.0.0 XX-XX-XX-XX-XX-XX
rename c:\windows\system32\arp.exe xxxxx.xxxxxx
这段代码 第二行的意思是 arp 本机绑定 第三句是 把arp.exe 这个程序改名 为 XXXX.xxxxxx运行这段代码后,大家可以在运行下第二行 这时候就会报错!
上一章给大家介绍了简单的P处理应用!
这一张讲解先实战加结合,结合前先看一段代码
@echo off
@echo ╔┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╗
@echo ┋ ┋
@echo ┋ NoPassword 网吧系统-开机设置批处理---- ┋
@echo ┋ ┋
@echo ╚┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉╝
@echo ---------------------------------------------------
set /p srv=[请输入讯闪服务器IP或计算机名]:
@echo ---------------------------------------------------
echo [更新] >"%ProgramFiles%"\凋用程序\cfg.ini
echo 远程目录=\\%srv%\menu$\ >>"%ProgramFiles%"\凋用程序\cfg.ini
echo 本地目录=d:\GameMenu\ >>"%ProgramFiles%"\凋用程序\cfg.ini
echo 执行文件=d:\GameMenu\游戏菜单.exe >>"%ProgramFiles%"\凋用程序\cfg.ini
echo :::下面请勿修改 >>"%ProgramFiles%"\凋用程序\cfg.ini
echo [辅助] >>"%ProgramFiles%"\凋用程序\cfg.ini
echo 连接超时=5000 >>"%ProgramFiles%"\凋用程序\cfg.ini
echo 调用程序名=原调用.exe >>"%ProgramFiles%"\凋用程序\cfg.ini
有兴趣的朋友可以把以下代码保存为bat格式看下!
讲解下 前面的我就不多说了 从红色部分开始
set /p srv=[请输入讯闪服务器IP或计算机名]
批处理中 set /p *=注释 这的意思就是可以让操作者手动输入一段字符, 其中 * 的意思是一个变量 可以自己选择 我上面红色的是 srv 那么请仔细看下面这一行
echo 远程目录=\\%srv%\menu$\ >>"%ProgramFiles%"\凋用程序\cfg.ini
其中红色部分 就是与第一部分 srv= 中的 srv 对应 这的意思也就是说 %srv%=srv 那srv 又等于了您输入的字符!这就代表了引用,也就是变量.利用以上方法 我们进行一个实例演示
比如你想用一段批处理 让别人输入一段字符 然后保存到 D盘 的test.txt 中 那么我们可以这么表示
@echo off
set /p zf=[请输入一段字符,您输入的将保存到d盘test.txt 中]:
echo %zf% >d:\test.txt
echo :::您输入的字符已经保存完毕
pause
大家试了吗? 不错吧 你输入的字符已经存在与D盘的 test.txt 文件中
不知道 大家现在经过第一段代码 和实例代码 发现一个问题没有 就是第一段代码中 写入字符 是按行保存
而我们实例代码 无论运行多少次,都只保存第一行!
把两段代码结合起来比较下 大家不难发现
echo 字符 >保存文件路径及名称
echo 字符 >>保存文件路径及名称
大家发现什么 一个是">" 一个 却是">>"
对的 在批处理中 echo 可以表示为注释 也可以 向指定位置写入符 并保存到文件中 而>就个符号就是关键 一个表示写入 两个表示 按行写入! 把上面 实例代码 修改一下 为
@echo off
set /p zf=[请输入一段字符,您输入的将保存到d盘test.txt 中]:
echo %zf% >>d:\test.txt
echo :::您输入的字符已经保存完毕
pause
大家会看到 你运行几次 输入的字符 是按行排列下去! 很好完吧!
接下来 利用我们上面将的 进行修改计算机名
@echo off
set /p 机器号=[请输入计算机名]:
@echo off
:::第一步 写入注册表首行及次行
@echo Windows Registry Editor Version 5.00 >cpname.reg
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>cpname.reg
:::第二步 将变量改为计算机名
@echo "ComputerName"="wb%机器号%" >>cpname.reg
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>cpname.reg
:::用变量"机器号"去替换实际的机器名
@echo "NV Hostname"="wb%机器号%" >>cpname.reg
@echo "Hostname"="wb%机器号%" >>cpname.reg
:::导入注册表 "cpname.reg"
@regedit /s cpname.reg
看了下大家的回贴 wb%机器号% 这的WB 也就是你网吧机器名前面的字母 如下面一位仁兄所说如果是天下网盟15号 那就是 TXWM%机器号%
大家不知道看懂没有! 其实思路就 我们把人工输入的计算机编号 转成为 注册表文件 最后导入到注册表中 从而达到修改计算机名的效果! 需要大家注意的 在红色部分 大家自己理解 不明白问我!
今天就讲这么多!
-----------------------------------
第三章 判断语句执行!
首先大家先看判断语句的格式 拿清除^^文件为例
if exist %systemdrive%\*.tmp del /f /s /q %systemdrive%\*.tmp
大家先看这段代码 由几个部分 组成
第一部分 if exist 判断
第二部分 &sytemdrive&\*.tmp
第三部分 del
第四部分 /f /s /q
先说第一部分
其实这就是在判断 如果 什么 我们 则什么 第二部分就是前面讲过的 set 下的目录代码
第三部分 就是 删除 第四部分 就是参数
连起来的意思就是 如果 %systemdrive%\ 下 存在 后缀为 .tmp 的文件 我们则删除 这些文件
这样大家就更好理解了 这样我们来 自己写段 删除 D盘 单个文件的判断语
首先
if exist d:\*.jpg del d:\*.jpg 这段就是判断图片文件 这大家就可以 自己发挥想像了
那么我们接下来讲 if 中的 变量判断
if "%dm%"=="" goto del1
if "%dm%"=="y" goto del2
if "%dm%"=="n" goto del3
这的代码是什么意思呢? 其实就是 如果 变量"%dm%=空 也就是没数据则 批处理直接跳到 del1 语句下
如果 变量 "%dm%=y 则跳转到del2 语句
如果 变量 "%dm%=n 则跳转到del3 语句
那么 我们来编辑下 利用上面的选择 写出一段代码
@echo off
:ks
set /p dm=请选择输入[y,n]:
if "%dm%"=="" goto del1
if "%dm%"=="y" goto del2
if "%dm%"=="n" goto del3
也就是让我们输入一段代码 则根据我们输入的 跳转到 指定代码段 其中 del1 del2 del3 就是这个指定代码段开始的地方
我们仔细看下上面的代码 其中 有个 就是 如果 dm 等于空时候就跳转到 del1 这是为了害怕会车太快输入了 空 所以做代码一定要想的周全点
我们继续编辑下面代码 del1
:del1
@echo 你也太笨了吧这也能输入错误!
pause
goto ks
其实 表示我们要跳转去的代码前面只要加个 ":" 就OK了 后面的del1 代码我给大家了!
那么大家是不是 试着去编写第二 第三段呢!
代码如下
:del2
del d:\*.jpg
:del3
goto end
这就是完整的 del2 del3 的语句了 全部加在一起是什么样呢?
@echo off
:ks
set /p dm=请选择输入[y,n]:
if "%dm%"=="" goto del1
if "%dm%"=="y" goto del2
if "%dm%"=="n" goto del3
:del1
@echo 你也太笨了吧这也能输入错误!
pause
goto ks
:del2
del d:\*.jpg
:del3
goto end
这段代码的意思 主要是 询问你是否删除 d:盘下 所有jpg 文件 如果需要就是选择 y 不需要选择 n
if 的语句很简单的哦
我们把上面所有语句连起来使用
第一步 查找 D 盘是不是有 jpg文件
if exist D:\*.jpg goto ks
if not exist d:\*jpg goto end
上面代码的意思是 如果D盘 有jpg 则条转到开始 没有 则关闭批处理
这样就形成了一段完整的代码 我们结合下
@echo off
if exist D:\*.jpg goto ks
if not exist d:\*jpg goto end
:ks
@echo 发现D盘有jpg文件,请问您是否选择删除,删除选"y"不删除选"n"
set /p dm=请选择输入[y,n]:
if "%dm%"=="" goto del1
if "%dm%"=="y" goto del2
if "%dm%"=="n" goto del3
:del1
@echo 你也太笨了吧这也能输入错误!
pause
goto ks
:del2
del d:\*.jpg
:del3
goto end
大家可以在D盘下放一个 jpg文件 看下 有和没有 代码运行的就不一样
是不是啊?
本章关键
1、if "参数" == "字符串" 待执行的命令
2、if exist 文件名 待执行的命令
本章讲解的是初级判断 下一章可能深入点 可能会讲到关于 for 及;另外一个 判断语的用法
谢谢大家支持!
------------------------------------------
今天算是复习!
给大家段代码 我还没完成的!!
@echo off
:KS
@echo ===========================================
@echo ‖ ‖
@echo ‖母盘开机设置程序----Powered by NoPassword‖
@echo ‖ ‖
@echo ‖ ‖
@echo ===========================================
@echo off
echo 请选择您采用的游戏菜单(支持讯闪.易速)
echo =============================================
@echo 1.讯闪游戏菜单
@echo 2.易速游戏菜单
@echo 3.其他游戏菜单
@echo 4.返回
echo =============================================
@echo off
set /p xz=请输入:
cls
:xz
if "%xz%"=="" goto sb
if "%xz%"=="1" goto xs
if "%xz%"=="2" goto ys
if "%xz%"=="3" goto qt
if "%xz%"=="4" goto ks
:sb
echo 我日!这都选错!我也真服了你了!你真牛!
:xs
echo ============================================
echo 您选择了讯闪游戏菜单:
echo 请选择讯闪调用程序目录
echo ============================================
echo 1."C:\Program Files\调用程序\"
echo 2."c:\调用程序\"
echo 3."d:\调用程序\"
echo 4."e:\调用程序\"
echo 5."f:\调用程序\"
echo 6."自己输入路径"
echo ============================================
@echo off
set /p xss=请选择:
cls
:xssz
if "%xss%"=="" goto sb
if "%xss%"=="1" goto c1
if "%xss%"=="2" goto c2
if "%xss%"=="3" goto d1
if "%xss%"=="4" goto e1
if "%xss%"=="5" goto f1
if "%xss%"=="6" goto self
:c1
xcopy \调用程序\ /s /y "%ProgramFiles%"\调用程序
cls
================================================
set path="%ProgramFiles%"\调用程序\新调用.exe
::要创建快捷方式的文件
set result="%USERPROFILE%\桌面\游戏菜单.url"
::要创建快捷方式的地方
echo [InternetShortcut] >> %result%
echo URL="%path%" >> %result%
::url一定要写
echo IconIndex=0 >> %result%
echo IconFile=%path% >> %result%
===============================================
echo 讯闪调用程序安装完毕
pause
goto s2
:c2
xcopy \调用程序 /s /y c:\调用程序
cls
echo 讯闪调用程序安装完毕
pause
goto s2
:d1
xcopy \调用程序 /s /y D:\调用程序
cls
echo 讯闪调用程序安装完毕
pause
goto s2
:e1
xcopy \调用程序 /s /y e:\调用程序
cls
echo 讯闪调用程序安装完毕
pause
goto s2
:f1
xcopy \调用程序 /s /y f:\调用程序
cls
echo 讯闪调用程序安装完毕
pause
goto s2
:self
@echo off
@echo 请输入你的讯闪路径[不可有空格以":"或"\"结尾]
set /p selff=请输入:
md "%selff%"\调用程序\
copy 调用程序\*.* /y "%selff%"\调用程序\
cls
pause
---DEL参数--------------------------------
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
names 指定一个或数个文件或目录列表。通配符可被用来
删除多个文件。如果指定了一个目录,目录中的所
有文件都会被删除。
/P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 从所有子目录删除指定文件。 +++
/Q 安静模式。删除全局通配符时,不要求确认。 +++
/A 根据属性选择要删除的文件。
attributes R 只读文件 S 系统文件
H 隐藏文件 A 存档文件
- 表示“否”的前缀
如果命令扩展名被启用,DEL 和 ERASE 会如下改变:
/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。
------批处理网站---------------------------------
http://bbs.verybat.org/