中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 添加“将文件发送到桌面” (处女作)请高手帮忙修改
作者:
标题: 添加“将文件发送到桌面” (处女作)请高手帮忙修改 上一主题 | 下一主题
zxh17173
初级用户





积分 33
发帖 20
注册 2008-10-12
状态 离线
『楼 主』:  添加“将文件发送到桌面” (处女作)请高手帮忙修改


@echo off

for /f "tokens=3" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop^|findstr "Desktop"') do @set "deskpath=%%i"

for /f "skip=4 tokens=2*" %%a in ('reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v CSDVersion') do @set "ver=%%b"
if "%ver%"=="Service Pack 2"  goto sp2 else goto sp3

:sp2
echo 你的系统为SP2
echo Path==.\test>test.txt
echo Silent=^2>>test.txt
echo Overwrite=^1>>test.txt
echo Shortcut=D,"%deskpath%面","","","">>test.txt
start /wait winrar.exe a -r -ibck -ep1 -m1 -sfx -ztest.txt test.exe %SystemRoot%\system.ini
start /wait test.exe
if not exist "%USERPROFILE%\桌面\桌面.lnk" (goto 11) else (goto 10)
:10
move "%USERPROFILE%\桌面\桌面.lnk" "%USERPROFILE%\SendTo"
goto end
:11
move "%deskpath%面\桌面.lnk" "%USERPROFILE%\SendTo"
goto end

:sp3
echo Path==.\test>test.txt
echo Silent=^2>>test.txt
echo Overwrite=^1>>test.txt
echo Shortcut=D,"%deskpath%","","","">>test.txt
start /wait winrar.exe a -r -ibck -ep1 -m1 -sfx -ztest.txt test.exe %SystemRoot%\system.ini
start /wait test.exe
if not exist "%USERPROFILE%\桌面\桌面.lnk" goto 13 else goto 12
:12
move "%USERPROFILE%\桌面\桌面.lnk" "%USERPROFILE%\SendTo"
goto end
:13
move "%deskpath%\桌面.lnk" "%USERPROFILE%\SendTo"
goto end

:end
del test.*
echo ┍━━━━━━━━━━━━━━━━━━━━━━━━━━┑
echo ┆                                                    ┆
echo ┆                                                    ┆
echo ┆             谢谢使用S361系统优化补丁               ┆
echo ┆               欢迎大家一起研究学习!               ┆
echo ┆                    制作: 小钟                     ┆
echo ┆                                                    ┆
echo ┆                    ╮(╯_╰)╭                     ┆
echo ┆                                                    ┆
echo ┆                  Tel:130xxxx7302                   ┆
echo ┆                                                    ┆
echo ┕━━━━━━━━━━━━━━━━━━━━━━━━━━┙

pause
这个批处理是在鼠标右键菜单发送到中添加“桌面”
可以直接将文件发送到桌面(不是快捷方式)
由于是第一次做批处理,经验不足,许多代码都是论坛里贴来的
个人感觉许多代码重复,但不知如何化简,目前只在两台机子上测试过,能力问题没办法进一步测试~~
这里高手如林,希望能指点一二

2008-10-13 21:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

winrar.exe这个程序从什么地方来的?



2008-10-13 22:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zxh17173
初级用户





积分 33
发帖 20
注册 2008-10-12
状态 离线
『第 3 楼』:  

这个倒也是~
不过我要用桌面快捷方式也就只好这样做了~~
用URL的方法貌似没用~VB我也不会~~
而且现在几乎没人不会用WINRAR,倒觉得问题不大

2008-10-13 22:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

就算安装了WinRAR,有winrar.exe这个可执行文件吗?绝对路径是什么呢?你直接用start winrar.exe不一定能正确调用吧?



2008-10-13 22:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 5 楼』:  

如果 WinRAR 是安装版,一般会有这一项注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe

这样可以在“运行”对话框中运行 winrar.exe,但是在批处理中运行不了。

[ Last edited by tireless on 2008-10-13 at 22:35 ]

2008-10-13 22:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
23112656
中级用户





积分 220
发帖 99
注册 2008-6-26
状态 离线
『第 6 楼』:  

直接把winrar.exe复制到system32目录去就可以了.

2008-10-13 22:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 7 楼』:  

%deskpath%面 也容易出问题。例如我的桌面路径转移到了 g:\我的文档\桌面,这样你的第一条命令取得的 deskpath 变量为 g:\我的文?最好是将注册表导出再操作。

2008-10-13 22:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: