![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 13:42 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 全自动添加后台.bat |
| 可打印版本 2,143 / 7 |
| 第1楼 yishanju | 发表于 2009-01-22 20:28 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
全自动添加后台.bat 编写、测试、运行环境:WINDOWS XP SP3 ,WINDOWS SERVER 2003
MS SQLSER 2005 利用到的工具: MS SQLSER 2005 自带的SQLCMD 命令工具 全自动添加后台.bat 这是一个WEB 游戏后台自动添加的批处理 没有实际的测试环境或者运行环境,比较难说清楚代码都在做些什么事情,我就大概说下实现的功能好 1,第一次运行把自身加入任务计划,每小时运行一次 2,通过 SQLCMD 命令行工具连接数据库查询最大用户ID 3, 计算需要添加多少组后台 4,利用白杨的FR 命令行工具编辑配置文件。 [ Last edited by yishanju on 2009-1-22 at 20:48 ] 附件 fr.rar (154.9 KiB) |
|
| 第2楼 yishanju | 发表于 2009-01-22 20:29 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
刚刚写完全部功能,并通过本地环境的测试
很是兴奋,先把代码贴上来,其它再说 |
|
| 第3楼 yishanju | 发表于 2009-01-23 06:10 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
http://upload.cn-dos.net/img/1282.rar
简介 fr - 在文件中批量查找并替换匹配的字符串 支持一次性指定多个文件通配符和文件列表。 支持管道模式,与其它命令协同工作;支持半管道模式,从文件中获取输入,但将结果写到标准输出。 支持包含子目录。 支持普通匹配、正则匹配、可忽略大小写、可跨行匹配。替换时可以使用正则的子表达式。 支持高级正则表达式(ARE)。 同时支持 posix 标准的扩展正则表达式及 perl 风格的正则匹配。 可以格式化替换内容为全大写或全小写,便于在批处理中对环境变量和命令行参数做大小写一致化处理。 支持 DOS(Windows)、Macintosh 和 unix 风格的换行符,可选择自动识别(默认)或手动指定。 统计功能,列出每个文件中的替换次数、总替换次数等。 支持Win32和纯DOS环境(纯DOS环境中需要 HX DOS Extender 支持)。 更新历史 2008-09-09, Ver 2.1.4.0909 UPD: 增强了正则行首锚点 '^' 的适应性。 2008-09-08, Ver 2.1.3.0908 FIX: 纠正了正则表达式零长匹配时会出现无限循环的问题(例如,在内容“aaa.bbb”中将“*”替换为“z”)。 FIX: 纠正了正则行首锚点解析不正确的问题(例如,在内容“ccc”将“^c”替换为“z”)。 2008-08-16 Ver 2.1.2.1126 新增高级正则表达式(ARE)支持 2007-01-20 Ver 2.1.1.120 新增 -exp 选项,开启该选项后,程序的内存使用量将增加一倍,但是在很多情况下,其处理速度将得到极大改善。碰到性能问题的弟兄们可以试试。 该算法使用额外的内存消除了原地替换时带来的内存抖动,所以文件中要替换的值越多,算法带来的性能提升就越明显。在 siwen@CCF 兄提供给我的样本上测试,开启了 -exp 选项以后,fr 完成任务的时间从 1小时 降低到 1.5 秒(文件体积 8.5MB,文件中需要替换的项目为 25 万项)。 典型应用 在命令行中单独使用,或作为管道过滤器使用。例如:“unzip -l *.zip | fr /r:"^(.{22}:\d\d\s*|(A| \a| -|.*files$).*\n)" /t”将当前目录下的所有zip文件中的文件干净地列出,同时过滤标题行、统计行以及每行的文件大小、修改时间等内容。 在批处理中应用。批处理片断:fr *.lst -fic:NewDir -tu:"%1" 将当前目录下所有 .lst 文件中的 newdir 替换为第一个命令行参数(全大写)。 另一个简单的例子:将“@fr kog-Swd5b.sfv /r:"^(.*) (\x\x)(\x\x)(\x\x)(\x\x)$" /t:"\5\4\3\2 *\1"”保存为批处理文件“sfv2hash.bat”,在下载任何带有 sfv 校验信息的文件后,可以使用 sfv2hash check.sfv 将其转换为标准 hash 信息格式。然后就可以使用 crypto v check.sfv /halgm:crc32 或其它散列验证工具进行文件验证。 与其它工具配合使用。 简单中文帮助 C:\Documents and Settings\Administrator> #fr =============================================================================== find and replace Ver 2.1.1.120 by BaiYang / 2004 - 2007, 免费软件 主页地址 - http://baiy.cn =============================================================================== 在文件和管道中寻找字符串,并将它们替换为其它内容 用法: fr {查找选项:查找内容} {替换选项:替换为} =============================================================================== 查找选项: -f: - 匹配精确串 -fic: - 匹配精确串(忽略大小写) -r: - 正则表达式匹配 -ric: - 正则表达式匹配(忽略大小写) -rnnl: - 跨行正则匹配 -rnnlic: - 跨行正则匹配(忽略大小写) =============================================================================== 替换选项: -t: - 将匹配的内容替换为指定字符串 -tu: - 先将指定的“替换为”字符串变为大写,然后开始替换 -tl: - 先将指定的“替换为”字符串变为小写,然后开始替换 -h -? - 当前屏幕 注意: 如果您正在使用正则匹配,那么您可以在“替换为”字符串中使用子表达式代换 (\0 ~ \9) =============================================================================== 其它选项: -s - 包含子目录 -exp - 启用内存扩展算法,将会加倍 fr 的内存使用量,但是很多时候可以极大地 提高执行效率。如果你碰到了性能问题,可以尝试开启该选项。 -stdin - 从标准输入设备获得要查找的内容,并将结果从到标准输出设备(如果未指 定任何文件模板的话,则自动启用该选项) -stdout - 像平时一样, 从文件中获得输入, 但将结果送到标准输出(而不是写回文 件) -frc - 显示每个文件内发生的替换次数 -trc - 显示所有文件总共发生的替换次数 =============================================================================== POSIX 和 Perl 风格的正则表达式: - "find - replace" 完整支持 POSIX.2 扩展标准及 Perl 风格的正则表达式。 以下是支持的字符类及其对应关系: POSIX perl 描述 -------------------------------------------------------------------- 字母和数字 \a 字母 \l 小写字母 \u 大写字母 空格和制表符 \s 空白字符 控制字符 \d 十进制数字 \x 十六进制数字 可打印字符(不包括空白符) \p 可打印字符(包括空白符) 标点符号 - 以下是一些 perl 的特殊字符类: perl POSIX等效 描述 -------------------------------------------------------------------- \o 八进制数字 \O 非八进制数字 \w _] 单词组成 \W _] 非单词组成 \A ] 非字母 \L ] 非小写字母 \U ] 非大写字母 \S ] 非空白符 \D ] 非十进制数字 \X ] 非十六进制数字 \P ] 非可打印字符 \< _] 单词开始 \> _] 单词结束 - 注意: posix 字符类是必须工作在集合中的(“”内)。相反,perl 风格 的字符类是工作在集合运算之外的。 - 此外,为了便于在命令行输入一些特殊字符,特别定义了一下别名: perl风格 POSIX风格 描述 ----------------------------------------------------------------------- \" 双引号 \' 单引号 \t 制表符 \n 换行符 (0x0A) \r 回车符 (0x0D) \b 退格符 =============================================================================== 开关的前缀和后缀: * 所有命令行开关(选项)都是大小写无关的(如: "-fic:" 和 "-FIC:") * 开关的前缀可以是 "-" 或 "/"(如: "/s" 和 "-s") * 开关的后缀可以是 ":" 或 "="(如: "/f:", "/f=", "-f:" 和 "-f=" 等效) =============================================================================== 应用示例: fr *.txt *.htm -f:teh -t:the fr *.txt -fic:"My Dir" -tu:"%ROOTDIR%" type server.log | fr /r:"Connected.*218.79" /t:"**Attack** \0" type server.log | fr /r:"^(Smith|James).*\n" /t unzip -l *.zip | fr /r:"^(.{22}:\d\d\s*|(A| \a| -|.*files$).*\n)" / |
|
| 第4楼 yishanju | 发表于 2009-01-23 06:11 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
C:\Documents and Settings\webgame>sqlcmd /?
Microsoft (R) SQL Server 命令行工具 版本 9.00.1399.06 NT INTEL X86 版权所有 (c) Microsoft Corporation。保留所有权利。 用法: Sqlcmd [-U 登录 ID] [-P 密码] [-S 服务器] [-H 主机名] [-E 可信连接] [-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值] [-h 标题] [-s 列分隔符] [-w 屏幕宽度] [-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符] [-c 命令结束] [-L[c] 列出服务器[清除输出]] [-q "命令行查询"] [-Q "命令行查询" 并退出] [-m 错误级别] [-V 严重级别] [-W 删除尾随空格] [-u unicode 输出] [-r[0|1] 发送到 stderr 的消息] [-i 输入文件] [-o 输出文件] [-z 新密码] [-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出] [-k[1|2] 删除[替换]控制字符] [-y 可变长度类型显示宽度] [-Y 固定长度类型显示宽度] [-p[1] 打印统计信息[冒号格式]] [-R 使用客户端区域设置] [-b 出错时中止批处理] [-v 变量 = "值"...] [-A 专用管理连接] [-X[1] 禁用命令、启动脚本、环境变量[并退出]] [-x 禁用变量情况] [-? 显示语法摘要] |
|
| 第5楼 yishanju | 发表于 2009-01-23 06:12 |
| 银牌会员 发帖 1,357 积分 1,488 | |
|
C:\Documents and Settings\webgame>osql /?
Microsoft (R) SQL Server 命令行工具 版本 9.00.1399.06 NT INTEL X86 版权所有 (c) Microsoft Corporation。保留所有权利。 注意: osql 并不支持 SQL Server 2005的所有功能。 请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。 用法: osql [-U 登录 ID] [-P 密码] [-S 服务器] [-H 主机名] [-E 可信连接] [-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值] [-h 标题] [-s 列分隔符] [-w 列宽] [-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符] [-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称] [-q "命令行查询"] [-Q "命令行查询" 并退出] [-n 删除编号方式] [-m 错误级别] [-r 发送到 stderr 的消息] [-V 严重级别] [-i 输入文件] [-o 输出文件] [-p 打印统计信息] [-b 出错时中止批处理] [-X[1] 禁用命令,[退出的同时显示警告]] [-O 使用旧 ISQL 行为禁用下列项] <EOF> 批处理 自动调整控制台宽度 宽消息 默认错误级别为 -1 和 1 [-? 显示语法摘要] |
|
| 第6楼 samliu | 发表于 2009-02-05 22:36 |
| 新手上路 发帖 15 积分 15 | |
|
笔记已经做完了
我要慢慢的回去 好好学习 学习 如果我我有问题 再回来向楼主请教 先谢谢了 |
|
| 第7楼 caiye211221 | 发表于 2009-02-13 20:58 |
| 新手上路 发帖 18 积分 13 | |
|
太高科了,看不懂,呵呵。
|
|
| 第8楼 sqwxd | 发表于 2009-09-10 00:14 |
| 新手上路 发帖 8 积分 10 | |
|
谢谢分享~~
有空试试!!! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |