中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:bbs.cn-dos.net

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

<   <<   [1] [2] [3] [4] [5] [6]  >>   >
作者:
标题: [原创]SendTo+批处理实用小工具--加强版发送到 上一主题 | 下一主题
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 31 楼』:  

Re fastslz
你用的什么系统?好像是2000吧?你的 reg 和我的版本不一样,输出也不一样,你调整一下 skip= 后的值试一下调为 1 试一下,或者换为别的数字,或者去掉 skip= 。

[ Last edited by 无奈何 on 2006-10-3 at 12:45 ]



  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-10-3 12:31
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 32 楼』:  

奇怪了XP SP2呀
比尔给我特殊化了



第一高手    第二高手

2006-10-3 13:03
查看资料  发送邮件  发短消息 网志   编辑帖子
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 33 楼』:  

Re fastslz:
关于你的测试3,从你的测试1可以得到以下几点:
1.skip最好==4
2."delims= "无效。
在你的显示结果中,REG_SZ后面有8个空格的内容,这很容易联想到在windows中tab默认就占8个字符。另外,在批处理中,如果不指定delims,则默认delims=空格/Tab,所以很显然,你的"delims= "这个参数是没有效果的,反而还会使tab符失去分割令牌的作用。
建议测试以下代码:
code 1:
CODE:  [Copy to clipboard]
@echo off
set reg="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "tokens=2,*" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%
pause
code 2:
CODE:  [Copy to clipboard]
@echo off
set reg="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "tokens=2,* delims=这里是个tab" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%
pause
end:
至于你的测试4,就更不通用了,如果reg命令的输出中包含REG_SZ中任意一个字符都可能得到错误的结果。因为delims参数并非按字符串来获得分隔符,而是把delims=后面的字符串当作分隔符集,也就是说其中任意一个字符都被视为分隔符。(区别大小写)

参考:

  Quote:
skip=n              - 指在文件开始时忽略的行数。
delims=xxx        - 指分隔符集。这个替换了空格和跳格键
                          默认分隔符集。
tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代
                   的 for 本身。这会导致额外变量名称的分配。m-n
                   格式为一个范围。通过 nth 符号指定 mth。如果
                   符号字符串中的最后一个字符星号,
                   那么额外的变量将在最后一个符号解析之后
                   分配并接受行的保留文本。



2006-10-3 13:18
查看资料  发送邮件  发短消息 网志   编辑帖子
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 34 楼』:  

谢谢 3742668 兄的提醒,本意添加 skip 增加一下效率,看来是多此一举了。修正一下。我现在用的是 2k3 ,看来确实有必要安个虚拟机多测试一下。



  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-10-3 14:16
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 35 楼』:  

谢谢3742668解答看了你参考对其有了更深的了解

现作如下总结:

1:由于我的Windows XP pro SP2 的特殊性(已经确定reg.exe未被替换过),无奈何版主的代码在我的XP里不能正常执行,而此代码在2003下能正常执行。
CODE:  [Copy to clipboard]
::无奈何版主的代码
set reg="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "skip=2 tokens=2* delims= " %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%
2:3742668版主的代码在我的XP里能正常执行且此代码在2003下也能正常执行。可见3742668版主的代码通用性更强
CODE:  [Copy to clipboard]
::3742668版主的代码
set reg="HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "tokens=2,*" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%
pause
3:关于我的Windows XP版本说明,Windows XP pro SP2产品ID属于011段的(网络上所留传的XP版本产品ID一般都属于640段的)本人使用至今发现这2个版本XP确实有所不同。
XP补丁已全部更新至2006-10,已安装.NET Framework 2.0。能有区别的也就这些了。reg.exe MD5:7f1e65bde053985ba645340bc0cf6497



第一高手    第二高手

2006-10-3 14:32
查看资料  发送邮件  发短消息 网志   编辑帖子
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 36 楼』:  

呵呵...无奈何版主也没有睡呀,辛苦了、注意身体哦



第一高手    第二高手

2006-10-3 14:38
查看资料  发送邮件  发短消息 网志   编辑帖子
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 37 楼』:  

vbs版本的写了两个功能,昨天晚上传上来修改的时候又稀里糊涂地删掉了,今天重新传上来,大家帮忙测试。
附件解压到目录后运行其中的 安装.vbs 就可以安装上了。
因为这几天忙得狠,又微感小恙,代码没组织好,乱得狠,高人们别偷笑。

附件 1: SendTo+(VBS版).rar (2006-10-6 11:02, 3.29 K, 下载附件所需积分 1 点 ,下载次数: 100)
2006-10-6 11:02
查看资料  发送邮件  发短消息 网志   编辑帖子
electronixtar
铂金会员





积分 7491
发帖 2672
注册 2005-9-2
状态 离线
『第 38 楼』:  

vbs版的我喜欢^_^




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-8 05:42
查看资料  发送邮件  发短消息 网志   编辑帖子
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 39 楼』:  

我也下载试用了,vbs版的精简一点
electronixtar 你的vbs功底也了得,改天也露一手呀^_^



第一高手    第二高手

2006-10-8 05:48
查看资料  发送邮件  发短消息 网志   编辑帖子
electronixtar
铂金会员





积分 7491
发帖 2672
注册 2005-9-2
状态 离线
『第 40 楼』:  

寒~~我写的vbs就当片断好了。和版主们还差得远




C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
2006-10-8 07:00
查看资料  发送邮件  发短消息 网志   编辑帖子
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 41 楼』:  

谢谢 3742668
辛苦了,好身体最重要,我最近也感觉哪都不舒服。
试用先!



  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-10-10 23:50
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 42 楼』:  

今天检查了一下3个脚本,发觉有点小毛病,不过并不影响使用,不知道有没有测试出有问题的?
至于另外几个功能,都比较简单,都没有人尝试的吗?

2006-10-12 07:30
查看资料  发送邮件  发短消息 网志   编辑帖子
hxuan999
中级用户

DOS之日


积分 337
发帖 161
注册 2006-11-4
状态 离线
『第 43 楼』:  

支持 无奈何



for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
2006-11-23 05:02
查看资料  发送邮件  发短消息 网志  QQ   编辑帖子
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 44 楼』:  

非常精彩的贴子~~无限欣赏~:)



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-11-25 03:11
查看资料  发送邮件  发短消息 网志   编辑帖子
tao0610
高级用户

朦胧的世界


积分 579
发帖 218
注册 2006-10-24
状态 离线
『第 45 楼』:  

一起欣赏。。。




认识自己,降伏自己,改变自己
,才能改变别人!
2006-11-25 03:44
查看资料  发短消息 网志   编辑帖子
<   <<   [1] [2] [3] [4] [5] [6]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011