Board logo

标题: [原创]SendTo+批处理实用小工具--加强版发送到 [打印本页]

作者: 无奈何     时间: 2006-10-2 03:26    标题: [原创]SendTo+批处理实用小工具--加强版发送到

-------------------------
小修正一下,感谢 fastslz 发现问题 3742668 提出解决方案。
便于及时更新修改文件,以链接的形式提供下载。
以后所有版本下面链接是最新文件。
下载:www.songjun.org/SendTo+.zip
-------------------------
因为个人原因有些时间没能来论坛了,辛苦 3742668 兄管理版面;又看到 willsort 兄暂时隐退的消息,挺怀念一起讨论的日子;同时祝贺 namejm 加入版主队伍。作为版主我觉得自己并不尽职。我将原先做的小东西整理细化了一下,作为国庆的小礼物送给大家。具体介绍可看下面的帮助文件。
        这是我用批处理制作的小软件,其中涉及到的知识点有注册表的查询添加、添加环境变量、动态显示选择提示、以及怎么在批处理中使用配置文件等等的内容。由于功能比较多,我虽然做了很多的测试但仍然不能保证不出问题,有问题、建议、以及代码的讨论欢迎跟贴。由于批处理的功能有限,软件自带两个命令行小工具,单纯的用批处理实现是不可能的,希望有能力并感兴趣的朋友能不能做个 VBS 脚本版的。祝大家节日快乐。
附图一张
帮助:
  本软件是用批处理制作的实用小工具,安装后会给“发送到”增加一些实用的特性,如:复制文件路径名、批量重命名、快速打开目录、剪贴板文字保存到文件等等。功能的实现是由20多个批处理脚本完成的,批处理有很强的可定制性,你甚至可以自己添加批处理脚本进去。
●安装说明
  最初的版本只需将文件夹复制到当前用户 SendTo 目录下便可以使用全部功能了。当前版本中我制作了一个安装批处理,只需将文件解压到任意目录后执行 Install.cmd 按提示操作便可完成安装。批处理脚本中大量使用了 CMD 命令行的特性,所以不支持 9X 系列系统,2000 应该能用但我没做测试。软件安装过程会注册一个用户变量,位置在 HKEY_CURRENT_USER\Environment 下 SendTo+ 键,必须注销或重启后用户变量才生效,安装完成后会提示注销一下系统。
●功能说明
  默认正常安装后会在当前用户 SendTo 目录下生成 SendTo+ 文件夹,使用方法是在任意目录选中文件或文件夹指向发送到、 SendTo+ 便会看到功能选项。注意选中文件和文件夹后的所调用的功能是不一样的,支持多选,只要是合乎情理的操作都支持多个文件或文件夹。目录列表及个人推荐度如下:
 ○命令提示符 ★★★
 ○打开目录 ★★★
  ◇添加此文件夹
  ◇移除此文件夹
 ○快捷方式
  ◇添加到“开始菜单”
  ◇添加到“快速启动” ★★
  ◇添加到“其它文件夹” ★★★
  ◇添加到“收藏”
 ○文本操作
  ◇复制文本文字到剪贴板
  ◇剪贴板文字到同名文本 ★★★
  ◇剪贴板文字生成新文本 ★★★★
  ◇剪贴板文字替换到文本
  ◇剪贴板文字追加到文本
  ◇清空文本文件
 ○文件操作
  ◇复制文件路径到剪贴板
  ◇复制文件名到剪贴板 ★★★
  ◇复制文件完整路径到剪贴板 ★★★★
  ◇随机数字批量重命名 ★★★
  ◇文本标题批量重命名 ★★★
  ◇序号数字批量重命名
  ◇以当前日期新建文件夹
  ◇以同名或剪贴板新建文件夹 ★★★
  ◇撤销上次批量重命名
  ◇加密批处理文件

●进阶说明
  由于软件的使用很简单不做过多说明,说一下操作方式。部分的操作是区分当前选中的是文件还是文件夹的,如“命令提示符”项当选中文件时打开的命令窗口的路径是文件所在路径,而选中文件夹时为选中的文件夹路径。同样的还有“剪贴板文字生成新文本”项等,并且会以文本的第一行重新命名。最特特殊的是“以同名或剪贴板新建文件夹”选中文件会以相同名建立文件夹,选中文件夹会将剪贴板内容为名在其下建立文件夹,你可以尝试选中多个文件与文件夹看看有何效果。还有一些操作是无意义的,比如选中多个文件调用“以当前日期新建文件夹”只会生成一个文件夹,但选中多个文件夹会大不相同。还有一些操作是不区分文件和文件夹以及目录的,比如“撤销上次批量重命名”在那里操作结果是一样的。
  关于在“发送到”生成的文件夹的名字,可以自己修改 SendTo+.ini 中 = 号后的内容,使其更合乎自己的使用习惯。其文件夹下的操作项名可以修改 Install.cmd 中 “/f:” 后跟随的 *.lnk 的名字,可以增加序号以使按习惯的顺序排列。在 SendTo+ 下 CMD 文件夹下的 ShortcutToFolder.ini 是添加到“其它文件夹”的文件记录,以“*”号开头的行会被置顶选择,当执行操作后,所需目标文件夹不在此处时会提示输入目标位置,并记录在此文件中,后续版本中会增加根据使用频繁度调整顺序功能。关于隐藏属性的 Desktop.ini 是文件夹显示图标的定义文件,请不要删除。
  已知问题,当文件名含有 & | 等特殊字符时可能会操作失败,原因是发送到传递给脚本的参数默认是不加引号的会造成解析参数错误,对付的办法是更改文件名去掉特殊字符或在文件名中添加空格,除此没有彻底解决的办法。多文件操作时出现“Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。”错误提示,是选择的文件太多,超过命令行的字符限制,解决的办法是减少文件的选择量。
  软件中打包两个命令行小工具 winclip.exe 和 Shortcut.exe 可以在此处下载:http://dmst.aueb.gr/dds/sw/outwit/ 。要比微软的 clip.exe 和 Shortcut.exe 功能强大的多。批处理文件我进行了简单的加密,原理参见:http://www.cn-dos.net/forum/viewthread.php?tid=22254 。加密的目地不是不想让人看到源码,而是防止用户在不熟悉的情况下错误修改文件。如果你确信你在干什么,完全可以自行修改扩充,批处理脚本中有简单的注释。有问题和建议欢迎指正交流。


BY:无奈何@cn-dos.net
mail:wunaihe@gmail.com
2006.10.1


——————————————分割线———————————————


***********************************
                     版务日志
***********************************
操   作:      主题加精
执行人:      3742668
原   因:      无论从点击还是回复上来看,此贴
                都达到精华的标准,且实用性较强
说   明:      由于目前并没有一个明确的加精依
                据,所以如果对此次操作持怀疑态度
                的朋友可以跟贴指出,或者于站内
                的消息系统留言说明。
***********************************


[ Last edited by 无奈何 on 2006-10-3 at 14:36 ]
附件 1: SendTo+.gif (2006-10-2 03:26, 16.55 K, 下载附件所需积分 1点 ,下载次数: 60)



作者: fastslz     时间: 2006-10-2 05:05
太好了,下载使用并学习
部分功能是我一直想要,如果SendTo+ 菜单不是放在发送到里,能够独立伸展就好了(l类似WinRAR的层叠右键关联菜单),即美观又实用。期待无奈何版主下一个版本SendTo+ 能够独立伸展。

最后谢谢你的国庆礼物
作者: fastslz     时间: 2006-10-2 05:33
无奈何版主
发现一个添加到“收藏”功能的不稳定的情况,我目前不能发送到收藏夹,原因:
::从注册表中获取“收藏”文件夹路径
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
除了HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
还有一个
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
我觉得上面一个键值有点死性不改的,真正起作用的是下面一个键值。如我设置收藏夹的代码:
REGEDIT4

;更改IE收藏夹位置
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
"Favorites"="E:\\TEMP\\Favorites"
;更改IE收藏夹位置
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
"Favorites"=hex(2):45,00,3a,00,5c,00,54,00,45,00,4d,00,50,00,5c,00,46,00,61,00,\
  76,00,6f,00,72,00,69,00,74,00,65,00,73,00,00,00
  
hex值也是E:\TEMP\Favorites

[ Last edited by fastslz on 2006-10-2 at 05:39 ]
作者: 无奈何     时间: 2006-10-2 05:40
制作独立的折叠菜单不可能,必须编写 .dll 文件实现,而我不懂 windows 编程。
折中的办法是将最常用的功能拷贝到 SendTo 根目录,或者修改安装文件 Install.cmd 。请注意“打开目录” 可能不够灵活,其它快捷方式不依赖所在目录都没有问题。
作者: electronixtar     时间: 2006-10-2 07:43
好东东,收下了。

建议再加一个 合并文件 的简单功能,用 copy /b +
作者: 无奈何     时间: 2006-10-2 08:09
Re fastslz
谢谢你的反馈,我无法重现你的错误。所有对User Shell Folders的修改都会反应到Shell Folders下的,Shell Folders下保存的是实际的路径。并且 reg.exe 无法查询User Shell Folders的键值,因为有更好的访问地方就是Shell Folders下。你是否可以尝试自行修改一下代码。

Re electronixtar
这个功能我考虑过,由于文件名复杂多变,不可能控制合并文件的前后顺序,只能提示用户选择,如此的话方便程度还不如在命令行里敲几下。你说呢?
作者: electronixtar     时间: 2006-10-2 09:48
合并功能很有用的,用sort命令可以很方便的完成这个任务。

其实WinRAR就可以文件合并,呵呵
作者: namejm     时间: 2006-10-2 10:25
  无奈何版主一出手就是精品,先顶再说。测试中ing……
作者: pengfei     时间: 2006-10-2 10:33
无奈何版主的确出手不凡, 先顶再说~~~!
作者: 3742668     时间: 2006-10-2 11:07
欢迎归来,呵呵.
   关于你的那两个工具的问题,似乎一个是用来创建快捷方式,一个是用来操作剪贴板,我想用vbs来解决应该比较简单吧。
    建议你发一个具体的参数格式出来,让广大的vbs爱好者也练练手。
作者: 无奈何     时间: 2006-10-2 11:47
Re 3742668
我的意思不是单单替换掉这两个命令行工具,而是完全的用 VBS 来完成所有功能,做一个纯粹的 VBS 版本,虽然我不懂但我猜想都是常规操作也不会过于复杂。 VBS 版可能会比批处理版更受欢迎,因为批处理无法避开许多弊端,比如参数字符限制,特殊字符处理还有非交互下也会弹出黑黑的界面,虽然我已经尽力使其不影响视觉了,但仍会看见黑影从任务栏闪过。同一个软件推出不同的版本,使用户各取所需,也算是脚本技术的发扬。兄能感兴趣我太高兴了,你是我能想到的最好人选。如果 VBS 版做好了批处理版也可以渐渐淡出了,兄没有时间也不要紧,其它朋友也可以尝试一下。任何人可以使用 SendTo+ 所有资源,如果有那么一个软件出来的话,只需表明借鉴自咱们论坛我已经很高兴了。
Re electronixtar
我可能比你更想加入这个功能,sort 不能实现自然数字的排序,GNU sort 倒是可以实现但必须指定字符位置,在文件名未知的情况下这是不太可能实现的,可行的办法是预定义一些规则弹出文本编辑器让用户修改后合并,但这样太不方便了,不如可视化的软件来的顺手。
作者: cxmzlxb     时间: 2006-10-2 22:29
想看源代码学习一下,无奈楼主做了加密,能不能给把文件夹下所有文件命名为01.*,02.*这样的代码,无论文件名是什么,不改扩展名,改扩展名的也给一个,要两两个,要源码!
作者: notiger     时间: 2006-10-2 23:17
版主出手果然大气,国庆节快乐
作者: 无奈何     时间: 2006-10-3 00:31
Re cxmzlxb
关于加密已经说明并且很简单,参看一下提供的加密原理的帖子很容易就得到源码了。过一段时间等这一版本稳定了,再添加一个交互界面的批量重命名的功能,初步想能指定序号位数命名、字符替换什么的。

Re all
我在别处见到转贴让我哭笑不得,我已说过加密不是提防看到源码。
麻烦转贴的朋友能不能将 “帮助” 部分全转过去。

[ Last edited by 无奈何 on 2006-10-3 at 05:17 ]
作者: vkill     时间: 2006-10-3 07:56
斑竹对注册表研究的很深,呵呵,动态显示选择提示这个我好好看看

[ Last edited by he200377 on 2006-10-3 at 08:07 ]
作者: fastslz     时间: 2006-10-3 08:03
无奈何版主:
之前关于我不能使用添加到收藏夹的原因,我测试下来发现,原从注册表中获取“收藏”文件夹路径那段代码,不能获取Favorites变量,而下面一段代码却不能获得全部路径,我能力有限,请无奈何版主看看还有更好的代码
@echo off
set reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "skip=2 tokens=1,* delims=:" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%
echo.
pause

作者: electronixtar     时间: 2006-10-3 08:50
http://www.cnbeta.com/modules.ph ... ticle&sid=16155

大家都去顶啊,不要忘了给文章评分5分哦~~~

原来无奈何版主也上cnbeta啊~~~呵呵
作者: electronixtar     时间: 2006-10-3 09:18
又想到了几个实用功能:
1.用fsutil清零文件、文件夹。实在不行用 copy nul 也行

2.转换文档类型,例如论坛老贴里很多vbs脚本 doc2htm htm2txt any2bat bat2exe

3.脚本加密,包括bat的unicode加密,js/vbs的encoder加密和frustrator加密

4.GB2312和UTF-8之间的互相转换,全角/半角的互相转换,GBK、繁体之间的转换,网上有html版的,做成vbs版应该不难

5.英文txt的大小写转换

6.批处理的查看NFO

7.bat js vbs转exe的实用工具,只要安装了 .NET Framework 就可以用vbs实现

9. Google文件名,对于不熟悉的系统文件名很有用,甚至做一个查找文件名后缀的东东,呵呵

10.获得文件的MD5 CRC32 hash值,呵呵,需要第三方软件支持。其实大家想想,这个功能放到“发送到”很实用的,因为平时我们做文件校检都是 打开 winmd5sum.exe,拖放文件,copy所得计算值,这样做久了很烦啊

11.简陋的合并文件功能 copy /b +

12.有可能的话,结合 memcoder和LAME做编码/解码快捷方式

13.Office文档的转换,用 ADODB 做 xls2txt ,即使没有安装excel也可以打开xls文件

14.结合简单的shell技术做文件夹的explorer级别的加密,比如大家熟悉的把一个文件夹伪装成回收站

15.有兴趣的话再做一个 FTP 上传、映射网络驱动器,subst虚拟磁盘,mountdrv fsutil HardLink的快捷方式,^_^

16.我会考虑用WIA做一个转换图片格式的,用TTS做一个文本到语音的转换脚本

其实Windows自带的很多exe还有更加广泛的引用,只要大家思路开阔,没有什么不可以~~

[ Last edited by electronixtar on 2006-10-3 at 10:24 ]
作者: 无奈何     时间: 2006-10-3 09:35
Re fastslz
我发现你修改了原始代码,换用原始代码看看,无论我怎么更改 Favorites 的注册表值都屡试不爽。
::set reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
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%
echo.
pause
Re electronixtar
我是看到在别处有转贴,转贴的不完全,还大呼加密云云,让我哭笑不得。索性还不如自己转一下,我觉得刻意的宣传是没有必要的,因为软件还不完善。如果转贴能让更多的人知道咱们论坛并带来人气的话这样做倒是值得的。如果转贴过多会给更新带来麻烦,可以使用下面的地址:www.songjun.org/SendTo+.zip
作者: electronixtar     时间: 2006-10-3 09:43
那些发现bat被加密的不会被郁闷死么,^_^ 这可是我们论坛的核心技术之一啊~~

为了保护论坛的自主知识产权,希望版主们把那个讨论批处理加密的帖子加上一点积分浏览的限制防止搜索引擎的采编。

http://www.cn-dos.net/forum/view ... =%E5%8A%A0%E5%AF%86

[ Last edited by electronixtar on 2006-10-3 at 09:47 ]
作者: chenall     时间: 2006-10-3 09:50
有空再试试将这个转成VBS脚本.我想应该不是很难.
难的是没有耐心.
作者: tinytiger     时间: 2006-10-3 09:56
好东西啊,多谢楼主!
作者: 无奈何     时间: 2006-10-3 10:13
Re electronixtar
        你18楼的建议我仔细看了。我觉得软件的定位很重要,我想做的是实用的并且能展示批处理魅力的东西,而不是工具拼合的杂集。
相 2、3、4、7、10 等都需要另外嵌入软件。 6、14 等很好我会好好构思一下。像一些编码及文档的转换 VBS 来做很合适,但是没有人来做。接下来我要做的先修复一下现在的版本,脚本基本上没有加入太多的错误处理。


        还有我觉得技术的东西加密是没有必要,特别是咱们并不太高明的技术。相反的如果有人能从这里学到更多的东西,我相信他更愿意来逛逛。
作者: electronixtar     时间: 2006-10-3 10:15
2 3 4 7 可以用纯脚本完成(见老贴),10当然要用第三方工具了,你的原版sendto+还不是用了第三方工具winclip和shortcut的嘛,呵呵。我可以写一个winclip和shoutcut的vbs版,这样我们就可以实现sendto+完全脚本化了

伪装文件夹,我可以提供国内最齐全的方法,^_^

又想到一个:(不要嫌多哈^_^)

17.写一个替换WFP系统文件的,就是批处理室最近讨论那个 replacer.bat
http://www.cn-dos.net/forum/viewthread.php?tid=23453&fpage=2
这个东西最能展现批处理魅力了,个人觉得,呵呵

[ Last edited by electronixtar on 2006-10-3 at 10:27 ]
作者: 无奈何     时间: 2006-10-3 10:47
Re electronixtar
我对 VBS 基本一无所知,所以相关的讨论也没有留意。我对编码转换的脚本比较感兴趣,但没有找到论坛里的链接。我自己也写过一个 UTF8 转 GB 的 Gawk 脚本,但是VBS 的话我不知道怎么调用参数。能写一个 winclip和shoutcut的vbs版太好了,我希望能参照原软件提供参数调用接口。还有一点我觉得必须把住,就是嵌入的脚本(cmd 和 vbs的)一定要自己完成的或者论坛朋友们写的并得到授权的或者是开放代码的,千万不能涉及版权问题。
作者: electronixtar     时间: 2006-10-3 11:12


  Quote:
编码转换

编码转换是利用一个“字典”的原理做的,所以转换的效果和字典是否足够大有关。

  Quote:
怎么调用参数

cscript xxx.vbs 参数1 参数2 参数3

  Quote:
能写一个 winclip和shoutcut的vbs版

没问题~~

  Quote:
开放代码

在这个论坛学到了这么多东西,开放是我们的义务和责任,我们是学术性质的讨论,又不是商业化的交换,呵呵~~
作者: fastslz     时间: 2006-10-3 11:13


  Quote:
Originally posted by electronixtar at 2006-10-3 10:15:
2 3 4 7 可以用纯脚本完成(见老贴),10当然要用第三方工具了,你的原版sendto+还不是用了第三方工具winclip和shortcut的嘛,呵呵。我可以写一个winclip咠...

我晕...我也想说加个系统文件替换replacer.bat呢,被你抢先了。electronixtar的思路实在宽阔,实在是佩服....
electronixtar有个通杀各种exe安装程序UniExtract是否也考虑加入

Re无奈何版主
我的代码是在你的原始代码上修改的,2个代码都不能正确定位Favorites,郁闷啊

另外对于  20楼:  electronixtar 建议我表示支持
作者: 无奈何     时间: 2006-10-3 11:49
Re electronixtar
谢谢,太好了,写完了让坛子里的其他 VBS 高手提提意见,争取下一次加入。

Re fastslz
你尝试将命令分解一下,先执行
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Favorites"
观察一下输出结果,再调整 for 的执行参数,期待你的处理结果。
UniExtract 好像是用 Autoit 写的,他打包的软件太多了。还有我觉得提供某种方式能让用户自己添加脚本比较合适,因为命令行下的实用软件太多了。如果你自己用的话你可以自己添加脚本并修改 Install.cmd 文件,有问题的话可以跟贴讨论一下。
还有限制加密相关的帖子的问题我已经说过了,如果像我这样的懒人不解压直接用 Winrar 查看的话已经原文呈现了,所以没有什么意义的,再者我的目的也不是不想让人看到源码,顶多是秀一下咱们论坛的技术。

[ Last edited by 无奈何 on 2006-10-3 at 11:55 ]
作者: fastslz     时间: 2006-10-3 12:10

@echo off
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Favorites">测试1.txt
echo.
set reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "skip=2 tokens=1,* delims=:" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%>测试2.txt
echo.
::set reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
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%>测试3.txt
echo.
pause


  Quote:
测试1.txt

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
    Favorites        REG_SZ        E:\TEMP\Favorites



  Quote:
测试2.txt
\TEMP\Favorites



  Quote:
测试3.txt
ECHO 处于关闭状态。


作者: fastslz     时间: 2006-10-3 12:18

set reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
for /f "skip=2 tokens=1,* delims=REG_SZ" %%i in ('reg query %reg% /v "Favorites"') do set Favorites=%%j
echo %Favorites%>测试4.txt
echo.


  Quote:
测试4.txt
        E:\TEMP\Favorites

测试4 Favorites变量是可用的,如果数值类型不是REG_SZ又会出错了:(

[ Last edited by fastslz on 2006-10-3 at 12:22 ]
作者: 无奈何     时间: 2006-10-3 12:31
Re fastslz
你用的什么系统?好像是2000吧?你的 reg 和我的版本不一样,输出也不一样,你调整一下 skip= 后的值试一下调为 1 试一下,或者换为别的数字,或者去掉 skip= 。

[ Last edited by 无奈何 on 2006-10-3 at 12:45 ]
作者: fastslz     时间: 2006-10-3 13:03
奇怪了XP SP2呀
比尔给我特殊化了
作者: 3742668     时间: 2006-10-3 13:18
Re fastslz:
关于你的测试3,从你的测试1可以得到以下几点:
1.skip最好==4
2."delims= "无效。
在你的显示结果中,REG_SZ后面有8个空格的内容,这很容易联想到在windows中tab默认就占8个字符。另外,在批处理中,如果不指定delims,则默认delims=空格/Tab,所以很显然,你的"delims= "这个参数是没有效果的,反而还会使tab符失去分割令牌的作用。
建议测试以下代码:
code 1:
@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:
@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 14:16
谢谢 3742668 兄的提醒,本意添加 skip 增加一下效率,看来是多此一举了。修正一下。我现在用的是 2k3 ,看来确实有必要安个虚拟机多测试一下。
作者: fastslz     时间: 2006-10-3 14:32
谢谢3742668解答看了你参考对其有了更深的了解

现作如下总结:

1:由于我的Windows XP pro SP2 的特殊性(已经确定reg.exe未被替换过),无奈何版主的代码在我的XP里不能正常执行,而此代码在2003下能正常执行。
::无奈何版主的代码
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版主的代码通用性更强
::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
作者: fastslz     时间: 2006-10-3 14:38
呵呵...无奈何版主也没有睡呀,辛苦了、注意身体哦
作者: 3742668     时间: 2006-10-6 11:02
vbs版本的写了两个功能,昨天晚上传上来修改的时候又稀里糊涂地删掉了,今天重新传上来,大家帮忙测试。
附件解压到目录后运行其中的 安装.vbs 就可以安装上了。
因为这几天忙得狠,又微感小恙,代码没组织好,乱得狠,高人们别偷笑。
附件 1: SendTo+(VBS版).rar (2006-10-6 11:02, 3.29 K, 下载附件所需积分 1点 ,下载次数: 100)

作者: electronixtar     时间: 2006-10-8 05:42
vbs版的我喜欢^_^
作者: fastslz     时间: 2006-10-8 05:48
我也下载试用了,vbs版的精简一点
electronixtar 你的vbs功底也了得,改天也露一手呀^_^
作者: electronixtar     时间: 2006-10-8 07:00
寒~~我写的vbs就当片断好了。和版主们还差得远
作者: 无奈何     时间: 2006-10-10 23:50
谢谢 3742668
辛苦了,好身体最重要,我最近也感觉哪都不舒服。
试用先!
作者: 3742668     时间: 2006-10-12 07:30
今天检查了一下3个脚本,发觉有点小毛病,不过并不影响使用,不知道有没有测试出有问题的?
至于另外几个功能,都比较简单,都没有人尝试的吗?
作者: hxuan999     时间: 2006-11-23 05:02
支持 无奈何
作者: redtek     时间: 2006-11-25 03:11
非常精彩的贴子~~无限欣赏~:)
作者: tao0610     时间: 2006-11-25 03:44
一起欣赏。。。
作者: hellomop     时间: 2006-11-27 21:44
感动DOS的人啊
作者: HUNRYBECKY     时间: 2006-12-3 04:38
支持,学习,太强了。喜欢无奈何,编写一个繁体和简体转换的脚本就好了。
作者: Michale     时间: 2006-12-3 08:23
谢谢老大的教程~~~十分感谢~~
作者: fbwolf     时间: 2006-12-14 05:36
高,实在是高
作者: redtek     时间: 2007-1-31 07:03
欣赏+狂顶!!!
好帖子顶起来~~~
作者: ihouge     时间: 2007-4-6 13:47
好东西收了,民间有高人啊
作者: jyssysz     时间: 2007-4-7 00:13
不能下载,楼主检查一下吧
作者: bsw     时间: 2007-5-3 14:23
好啊,收藏一下
作者: rdingding     时间: 2007-5-3 20:05
我也不能下载啊!!
好东西,希望楼主百忙中检查一下
不胜感激
作者: 8dos     时间: 2007-6-10 02:30
真的是好东西,好好收藏啊
作者: HAT     时间: 2007-6-12 17:14
无法下载。
麻烦哪位下载过的分享一下?
作者: sswxfj     时间: 2007-6-15 17:57
晕。下不下来啊
作者: superhacker     时间: 2007-6-21 12:29
好东西
作者: gdygood     时间: 2007-7-13 13:42
本人菜鸟,只有顶你,表示感谢
作者: whswbiori     时间: 2007-8-1 04:41
半夜起来睡不着 在54上寻找红色代码写的帖子 看到有人说写批处理可以来DOS论坛上看看 一想不错 以前没来过 来了以后看到2个斑竹 1个白银1个铂金会员的回复 觉得气氛很好 我是菜鸟 来论坛就是想来学习的 谢谢你们的文章
作者: kidzgy     时间: 2007-8-1 09:27
下载地址已经失效了,请楼主检查一下。
作者: jobesky     时间: 2007-9-29 18:16
太好了
作者: binggao     时间: 2007-9-30 09:02
感觉  好难啊还要多多的学习啊]
作者: 67411666     时间: 2007-10-14 16:13
先下了
作者: hdzc     时间: 2007-10-23 15:55
下载地址已经失效了
作者: vincentzpf     时间: 2007-11-28 14:42
下载地址已经失效了
作者: hpwsb     时间: 2007-12-2 12:00
下载不了啊
作者: mrxuanfeng     时间: 2007-12-4 17:46
高手多多,路过路过
作者: hdzc     时间: 2008-1-6 22:14
下载地址已恢复谢谢提供太好用了
作者: gto1235     时间: 2008-1-7 09:04
资历不够 不足以发表看法  先学习
作者: ljxar     时间: 2008-3-28 12:26    标题: 新手求高手给指条活路阿!批处理问题!!

高手进 !!!! 后缀名是.ASP的文件,我用WORD打开这种文件格式,再将其中的内容一个个的复制到WORD文档中!!!请问如何批处理打开、复制、粘贴!1000多份文件是ASP后缀的!~~~要是一个个的复制粘贴会死人的!~~~~谢谢!~~请百忙之中帮我编个批处理程序发到我的邮箱——LJXAR@163.COM !其他语言也可以!再次感谢!!~急死我了!
作者: kaikai163     时间: 2008-3-28 20:26
真是一群高手啊!学习中
作者: cgi     时间: 2008-3-31 14:06
版主出手果然不同凡響,不過有一個問題想請問版主在使用 “◇以同名或剪贴板新建文件夹” 時,若文件名內有 “(” 或 “)” 便不能以同名或剪贴板新建文件夹,不知是否有解決之道,謝謝!
作者: xtanbmy     时间: 2008-4-7 19:54
一群高手啊!学习中
作者: xb2008chopin     时间: 2008-4-8 03:12
确实比较经典 我收藏了 谢谢LZ
作者: dowhat18     时间: 2008-12-9 14:23
好东西得阿   支持一下,批处理得功能很强大得