第 106 楼
发表于 2007-04-09 22:58 · 中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206 发帖 517 注册 2007-03-25 01:18 19年会员 UID 82819 性别 男
状态 离线
Originally posted by namejm at 2007-4-9 08:57 AM:
1、
从你的其他回帖可以看出,兄是编程中人,但是却说出这样的话,未免让人感到意外,试问:在面向对象的高级语言中,如果不提供对象 ...
晕,因为你违反了批处理的一个特性,简单快捷。。
而加参数正是为了这样一个目的而来。。要不然,我还不如直接使用 xcopy来得简单。
加了参数后,我们可以使用
批处理.cmd ……
这样,才能省下工作量。。做批处理的目的是:让工作更加快捷而不是让工作更加麻烦,我才有此话。
最开始,我本准备提议使用.ini文件的。
想一下,我们第一次使用的时候是为好玩。第二次使用的时候是为新鲜感还没有过去。那么我们第n次使用的时候,有什么理由还要如此麻烦自己呢?
所以,我现在只要写的是关于实用一级的批处理,全部都加有参数。
这才有这句话的存在。
知,不觉多。不知,乃求知
第 107 楼
发表于 2007-04-09 23:03 · 中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206 发帖 517 注册 2007-03-25 01:18 19年会员 UID 82819 性别 男
状态 离线
4、
Quote:
至于非法字符也非常好防御,写一个子程序。
利用 %data:~0,1% 类似的代码就可以搞定。。
关于非法字符的防御,似乎并不像兄所说的那样简单,具体原因请参考本帖13楼 willsort 的分析。
至于源文件,我们没有必要在批处理中把这些判断完成。。
因为 微软在设计之初就把这些参数考虑到了。
我们所要做的只是捕捉这种错误就可以了。
知,不觉多。不知,乃求知
第 108 楼
发表于 2007-04-09 23:56 · 中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226 发帖 1,737 注册 2006-03-10 00:38 20年会员 UID 51697 来自 成都
状态 离线
Re flyinspace 『第 106 楼』和 『第 107 楼』:
原以为你的意思是说如果不在代码中写那么多参数,则这个脚本就是废物一个,但是从你的这两个回帖来看,才发现你是说希望调用脚本的时候能加参数,看来是我误解了。
但是,批处理.cmd [源文件] [目标文件] [开关] 的调用格式会有较多的参数需要学习,像我这等懒惰的菜鸟肯定会望而生畏的。用参数对程序员来说很方便,但是对普通用户来说就是一种折磨了,所以,我写这个脚本的初衷是:让用户跟着提示一步一步往下走,傻瓜式操作——我想,没有哪个备份狂会一天N次地频繁使用这个脚本来备份文件吧?如果有大量的备份操作或者备份要求很高的话,建议使用高级语言编写的专用备份程序,不推荐使用这个脚本。因此,这个脚本的定位决定了它的操作方式。
因为这个脚本提供了手工输入和鼠标拖曳两种方式,对于拖曳方式,则完全不用检测特殊字符,这我是承认的,但是手工输入就很难保证用户不会输入特殊字符了,比如:万一在一些地方使用了重定向符号,则极有可能把重要文件给覆盖掉;为了保险起见,对特殊字符做检测是必要的。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 109 楼
发表于 2007-04-10 01:08 · 中国 甘肃 平凉 电信
金牌会员
★★★★
积分 4,103 发帖 1,744 注册 2006-01-20 13:00 20年会员 UID 49241 性别 男 来自 甘肃.临泽
状态 离线
第 110 楼
发表于 2007-05-28 22:27 · 中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226 发帖 1,737 注册 2006-03-10 00:38 20年会员 UID 51697 来自 成都
状态 离线
Originally posted by willsort at 2006-5-24 02:47:
Re namejm:
以下的语句可以剔除路径中可能存在的引号,将相对路径转换为绝对路径,将非标准路径转换为标准路径(C:\\-->C:\),并判断路径是否有效地存在,是否是根路径。 不过它仍无法抵抗路径中出现的非法字符(>|),不知其他兄弟还有什么更好的办法没有?
这个问题困扰了我很久,一直到现在我才找到一个比较完美的方案,那就是:通过在%tmp%目录下创建随机文件夹,把判断非法字符的任务交给操作系统去完成。不过,让我感到有点不爽的是:这个方案产生了我一向力图回避的临时文件。
具体代码请参考这个帖子:
判断输入的文件名是否合法的批处理
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 111 楼
发表于 2007-06-01 14:18 · 中国 北京 联通
初级用户
★
积分 20 发帖 12 注册 2007-06-01 12:47 19年会员 UID 89957 性别 男
状态 离线
第 112 楼
发表于 2007-06-27 17:41 · 中国 山东 青岛 联通
新手上路
★
积分 2 发帖 1 注册 2007-06-27 17:15 18年会员 UID 92513 性别 男
状态 离线
第 113 楼
发表于 2007-09-03 10:01 · 中国 广西 南宁 西乡塘区 电信
中级用户
★★
积分 259 发帖 164 注册 2006-09-21 23:39 19年会员 UID 63296
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正