中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 01:41
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 添加“将文件发送到桌面” (处女作)请高手帮忙修改 查看 986 回复 6
楼 主 添加“将文件发送到桌面” (处女作)请高手帮忙修改 发表于 2008-10-13 21:53 ·  中国 福建 厦门 电信
初级用户
积分 33
发帖 20
注册 2008-10-12 19:14
17年会员
UID 128185
性别 男
状态 离线
@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

这个批处理是在鼠标右键菜单发送到中添加“桌面”
可以直接将文件发送到桌面(不是快捷方式)
由于是第一次做批处理,经验不足,许多代码都是论坛里贴来的
个人感觉许多代码重复,但不知如何化简,目前只在两台机子上测试过,能力问题没办法进一步测试~~
这里高手如林,希望能指点一二
2 发表于 2008-10-13 22:04 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
winrar.exe这个程序从什么地方来的?
3 发表于 2008-10-13 22:08 ·  中国 福建 厦门 电信
初级用户
积分 33
发帖 20
注册 2008-10-12 19:14
17年会员
UID 128185
性别 男
状态 离线
这个倒也是~
不过我要用桌面快捷方式也就只好这样做了~~
用URL的方法貌似没用~VB我也不会~~
而且现在几乎没人不会用WINRAR,倒觉得问题不大
4 发表于 2008-10-13 22:18 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
就算安装了WinRAR,有winrar.exe这个可执行文件吗?绝对路径是什么呢?你直接用start winrar.exe不一定能正确调用吧?
5 发表于 2008-10-13 22:27 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
如果 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 ]
6 发表于 2008-10-13 22:46 ·  中国 云南 昆明 电信
中级用户
★★
积分 220
发帖 99
注册 2008-06-26 15:12
18年会员
UID 120818
性别 男
状态 离线
直接把winrar.exe复制到system32目录去就可以了.
7 发表于 2008-10-13 22:52 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
%deskpath%面 也容易出问题。例如我的桌面路径转移到了 g:\我的文档\桌面,这样你的第一条命令取得的 deskpath 变量为 g:\我的文?最好是将注册表导出再操作。
论坛跳转: