![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 00:14 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]zw19750516 进来一下, 谢了 |
| 可打印版本 1,710 / 16 |
| 第1楼 quya | 发表于 2008-06-03 22:28 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
[求助]zw19750516 进来一下, 谢了 正好又一个FOR语句的用法,请帮助我如何得到准确答案。
我的批处理test1.cmd如下 运行结果是: 我希望的结果: quya.txt c:\x.txt (当然C也有可能是D) d:\test\y 该怎么做? 谢谢! |
|
| 第2楼 26933062 | 发表于 2008-06-03 22:38 |
| 银牌会员 发帖 879 积分 2,268 | |
|
我来可以么
[ Last edited by 26933062 on 2008-6-3 at 10:40 PM ] |
|
| 第3楼 bat-zw | 发表于 2008-06-03 22:42 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
ps:以后求助请不要直呼其名了,这里高手多的是,我不算什么的。 [ Last edited by zw19750516 on 2008-6-3 at 10:44 PM ] |
|
| 第4楼 quya | 发表于 2008-06-03 22:48 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
2楼这次错误, 不能查找 REM, 因为 REM我只是暂时用一下,不想给你们造成垃圾文件在硬盘上, 实际操作的时候是其他代码。
3楼解决了最后一行垃圾,但未解决第二行变量没出来的问题。 |
|
| 第5楼 bat-zw | 发表于 2008-06-03 23:03 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
呵呵,还真是忘记了这点,等,在想。。。
|
|
| 第6楼 bat-zw | 发表于 2008-06-03 23:07 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by quya at 2008-6-3 22:48: 这次应该是没问题了: [ Last edited by zw19750516 on 2008-6-3 at 11:17 PM ] |
|
| 第7楼 quya | 发表于 2008-06-03 23:24 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
呀, 真是奇妙!
如果能再修改一下去除垃圾的句子, 比如判断句子有很多空格(不太可能是文件名), 就更妙了。否则用一个“in”来排除,就可能误排除其他的。 do call, echo没想到,虽然能猜到一些,但希望能详细解释一下,谢谢! 睡觉了, 明天再会。 [ Last edited by quya on 2008-6-3 at 11:26 PM ] |
|
| 第8楼 pusofalse | 发表于 2008-06-03 23:28 |
| 银牌会员 发帖 646 积分 1,604 | |
Originally posted by zw19750516 at 2008-6-3 11:07 PM: |
|
| 第9楼 HAT | 发表于 2008-06-03 23:48 |
| 版主 发帖 5,017 积分 9,023 | |
Originally posted by quya at 2008-6-3 11:24 PM: 可以把for理解为一个特殊的命令行解释器,for命令在初始化的时候,已将引用变量全部扩展,也就是说%%i被替换为rem sssss>>%systemroot%\x.txt call可以理解为for开辟的一个子进程,在这个子进程里面,系统环境变量%systemroot%再次被替换成真实的值。 |
|
| 第10楼 bat-zw | 发表于 2008-06-04 00:28 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by quya at 2008-6-3 23:24: 我也要睡觉了,这样总能判断出来而不误排除其它的吧。 |
|
| 第11楼 26933062 | 发表于 2008-06-04 01:23 |
| 银牌会员 发帖 879 积分 2,268 | |
|
:
|
|
| 第12楼 pusofalse | 发表于 2008-06-04 01:34 |
| 银牌会员 发帖 646 积分 1,604 | |
|
最后? 不是应该最前吗?
|
|
| 第13楼 26933062 | 发表于 2008-06-04 07:33 |
| 银牌会员 发帖 879 积分 2,268 | |
|
这样就绝不会有误排除了。
|
|
| 第14楼 cuihanjie | 发表于 2008-06-04 23:33 |
| 初级用户 发帖 13 积分 26 | |
|
看晕了……
|
|
| 第15楼 quya | 发表于 2008-06-04 23:46 |
| 高级用户 发帖 172 积分 558 来自 江苏 | |
|
首先,请教大家一个问题,CALL 后边的“,”是什么意思? 有特别的意思吗?
其次,各位可能理解错我这个程序的本意了,这段小代码是被加密的批处理的一段, 干扰别人用 >>filename 来分析被加密的变量,当然 “for /f "tokens=2 delims=>" %%i in ('findstr /v "%%i" %0') do call,echo %%i” 这句语句本身也是考虑在被加密之列。 "ECHO %%i" 最后将被 "del %%i" 替换 所以,最重要的倒不是排除FOR语句本身,而是排除可能会生成 “del *.*” 之类的会引起无法意料的大错误,虽然这不太可能, 但能考虑到是最好的, 以防万一。这次 26933062的编程思路脱离了我的想法,当然是我没说清楚,我不好。 如果不删除别人分析的文件, 而代之于写入错误的信息, 当然最好, 但这样的编程过于复杂庞大, 可行性不大。我要做的就是用较简单的语句来造成良好的效果。 虽然批处理加密很难, 但如果同时用多种手段, 还是有所作为的。 [ Last edited by quya on 2008-6-4 at 11:48 PM ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |