![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 23:17 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创][XP]文件备份器V2.4(Final) [07-4-8更新] |
| 可打印版本 35,962 / 112 |
| 第16楼 namejm | 发表于 2006-05-25 23:33 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
Originally posted by willsort at 2006-5-25 22:30: 当把程序放在带空格的目录下执行时,当输入的路径为当前盘符+冒号的时候,并不能禁止全盘复制.而放到不带空格的目录下执行,或者是输入的路径为任意盘符+冒号+\的时候,则没问题,不知道是为什么. [ Last edited by namejm on 2006-5-26 at 00:12 ] |
|
| 第17楼 willsort | 发表于 2006-05-26 09:02 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re namejm:
这其中的原因在于,路径中的单纯使用盘符+冒号就意味着引用的是所指定磁盘的当前路径。所以在命令行直接使用盘符+冒号,会跳转到所指定磁盘的当前路径,而并非一定是根路径。 所有存在的磁盘都有当前路径,并且同时有效;当我们未用cd或其它方式改变它时,通常为根路径。使用cd "d:\Program files"会改变D盘的当前路径,而不论当前盘是否是D盘;也而使用copy c:*.* d:会将C盘当前路径下所有文件拷贝到D盘当前路径下,而不论当前处于哪个盘。 这应该算是一个固有的路径引用技巧,从DOS到CMD一直存在,如同. 和..一样。如果你想将d:转义为d盘根路径,相当于改变了命令行的固有约定,反而会对某些人造成困扰。我的新代码中有意测试了非当前盘的当前路径非根路径时的表现(E盘下测试当前路径为“C:\Documents and Settings”的C盘),结果我是满意的,它没有跳到forbid。 |
|
| 第18楼 willsort | 发表于 2006-05-26 23:21 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re namejm:
根据bagpipe兄在中的提示,将剔除引号的两句代码改为一句,想来自己也曾有过%大于"大于^的优先级推测,却不知灵活运用,而在各种for/if结构间打转,甚感惭愧! 在此多谢bagpipe兄赐教了! 如何从用户传入的参数中去掉引号? http://www.cn-dos.net/forum/viewthread.php?tid=20838&fpage=1 |
|
| 第19楼 namejm | 发表于 2006-05-27 00:04 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
已经看到了bagpipe兄发的帖子,已经更新了XP文件备份器相关部分的代码,在此感谢两位高手.
|
|
| 第20楼 无奈何 | 发表于 2006-05-27 00:18 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
To willsort
关于去除参数中首尾的双引号,好象记得与兄一起讨论过。 见:http://www.cn-dos.net/forum/viewthread.php?tid=17785 第 5 楼 1、项。 |
|
| 第21楼 namejm | 发表于 2006-05-27 09:13 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
[求助]怎么提取at命令中"命令行"栏目下的路径? 想把at命令中"命令行"栏目下的路径提取出来,先把at命令结果倒出到一文本文件中,发现格式如下:
其间有几个方块黑点(直接copy以上内容保存为文本文件不会出现,但是如果是用at>list.txt命令的话,会发现有方块黑点存在),不知道该格式的行与列是用什么分割的,导致无法用for命令来提取. 请问,我该怎么办? 如果能不产生临时文件就能提取的话,就更好了. 上述问题已经找到了一个解决办法,但是还不够完善,因为还是会产生临时文件,代码如下: [ Last edited by namejm on 2006-5-27 at 11:04 ] |
|
| 第22楼 namejm | 发表于 2006-05-27 09:36 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
at命令为什么显示不出指定每周的某几天 用了如下命令:
at 22:00 /every:M,T,W c:\windwos\system32\家易理财数据备份.bat 用at命令查看清单,结果如下: 状态 ID 日期 时间 命令行 ------------------------------------------------------------------------------- 1 每月执行日期: 1 2 3 4 5 6 7...12:40 C:\WINDOWS\system32\家易 理财数据备份.bat 2 每月执行日期: 1 2 3 4 5 6 7...19:00 C:\WINDOWS\system32\家易 理财数据备份.bat 3 每月执行日期: 1 2 3 4 5 6 7...22:00 C:\WINDOWS\system32\家易 理财数据备份.bat 4 每月执行日期:... 22:00 c:\windwos\system32\家易理财数 据备份.bat 难道是我的电脑显示不正常吗? (另:在论坛里用插入图象的功能,似乎只能插入网络上的图片,难道就不能插入本机上的吗?) |
|
| 第23楼 namejm | 发表于 2006-05-27 10:57 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
如何提取两个文本文件中有差别的内容? 假设1.txt中内容的格式如下:
2.txt的内容如下: 现在想把C:\WINDOWS\system32\test.bat提出来,该如何写代码? [ Last edited by namejm on 2006-5-27 at 10:58 ] |
|
| 第24楼 namejm | 发表于 2006-05-28 14:28 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
xcopy复制了0个文件也算执行成功吗? 发现了一个问题:
当没有更新备份的时候,即xcopy执行后提示"复制了0个文件"的时候,按照我的本意,是不用在log.txt文件里写入任何内容的,结果却写入了内容,难道xcopy复制了0个文件的时候也算执行成功吗?如果也算的话,&&及其之后的内容该怎么写? [ Last edited by namejm on 2006-5-28 at 17:17 ] |
|
| 第25楼 willsort | 发表于 2006-05-28 22:05 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re namejm:
21楼at命令的记录输出,是以换行符(ASCII:0A)而非回车换行符(ASCII:0D 0A)作为行结束,而记录域之间以普通的空格界分。因为记事本工具只能识别回车换行符,所以行被粘接显示,但是在我的测试中,这并不影响for对at命令输出的识别。以下命令是正常执行的。 for /f "skip=2 delims=\ tokens=4" %%f in ('at') do ... 22楼的第4条记录显示,是因为三个执行日(星期一 星期二 星期三)无法同时显示,所以用省略号替代显示,不影响任务的属性。如果你想抽取任务的执行日,则需要其它的方法。 23楼的差异比较,那要看文件属何种差异类型,是文件2.txt总大于1.txt,还是1/2互有不同内容,相同记录是否在同一行等?这决定了代码的复杂度。 24楼xcopy的返回值确实是这样的规则,因为它找到了源文件,并且复制过程中没有出现错误或被用户中止。暂时解决的办法是用find/findstr过滤xcopy输出结果。 xcopy /d /h /i /k /f /s /y "%source%" "%destination%" | find "->">nul && (... |
|
| 第26楼 namejm | 发表于 2006-05-29 23:24 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
Originally posted by willsort at 2006-5-28 22:05: 2.txt总是大于1.txt 我的本意是:检测at任务中用到的bat批处理程序,提取"命令行"栏目下的bat文件名,然后和%systemroot%\system32目录下的bat文件作个比较,如果不在at任务栏中,并且是本程序创建的(标志符为Code by JM) ,则删除该bat文件. 该如何处理? |
|
| 第27楼 namejm | 发表于 2006-06-01 01:46 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
怎么找到特定的程序? 想在%systemroot%\system32目录下所有的bat文件中,找到由特定程序创建的bat批处理(标志符为Code by JM),执行以下程序,结果把所有的bat批处理都显示出来了,不知道是为什么.
|
|
| 第28楼 willsort | 发表于 2006-06-01 17:08 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re namejm:
27楼的代码问题出在find中(红色粗体部分为修改后的结果)。
分析26楼的需求,不用比较文件也可以实现,以上述代码为基础,做以下修改;代码未做任何测试,请谨慎使用! [ Last edited by willsort on 2006-6-1 at 17:11 ] |
|
| 第29楼 zhouhb | 发表于 2006-06-01 17:20 |
| 中级用户 发帖 104 积分 230 | |
|
版主真是好人啊!谢谢你!
|
|
| 第30楼 namejm | 发表于 2006-06-01 19:51 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
Originally posted by willsort at 2006-6-1 17:08: 两段代码均无法达到目标,第一段如果去掉>nul 2>nul 后会显示"找不到文件-×××" 第二段干脆无任何显示.不知道是为什么. |
|
| 上一页 1 2 3 4 5 … 8 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |