中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 06:55
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 高手帮忙解决一个桌面路径问题
可打印版本  1,261 / 12
第1楼 tavel 发表于 2008-04-24 12:43
新手上路 发帖 3 积分 8
高手帮忙解决一个桌面路径问题
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk


难点是要简繁体系统都可以用的
是不是桌面有没有一个系统路径?类似于%systemdrive%?
第2楼 pooronce 发表于 2008-04-24 12:55
中级用户 发帖 250 积分 484

for /f "tokens=3" %%i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop^|findstr "Desktop"') do @echo %%i
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"
del "%deskpath%\a.lnk"
第3楼 dikex 发表于 2008-04-24 13:45
高级用户 发帖 366 积分 788
注意空格,在路径两旁加双引号,另外不需要使用8.3的文件名规则,除非你在纯dos下;
还有可以使用%USERPROFILE%这个环境变量,代码当前用户的文件夹
del "%USERPROFILE%\桌面\a.lnk"
第4楼 regvip2008 发表于 2008-04-24 14:24
初级用户 发帖 87 积分 187
Originally posted by pooronce at 2008-4-24 12:55 PM:

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


为什么我在cmd下面运行for /f "tokens=3" %i in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop^|findstr "Desktop"') do @echo %i
会显示“%USERPROFILE%\桌”这样的结果呢?
怎么会少了一个“面”字呢?
第5楼 dikex 发表于 2008-04-24 15:04
高级用户 发帖 366 积分 788
第6楼 terrytong 发表于 2008-04-24 15:09
中级用户 发帖 115 积分 240
收下好好学习。
第7楼 pooronce 发表于 2008-04-24 16:40
中级用户 发帖 250 积分 484
Originally posted by dikex at 2008-4-24 03:04 PM:
xp上面reg query 的bug

http://www.cn-dos.net/forum/viewthread.php?tid=22202&fpage=1&highlight=reg%2Bquery


我用的是2003,而且Desktop早就移过位置的,倒没发现过这个问题
第8楼 tavel 发表于 2008-04-25 12:08
新手上路 发帖 3 积分 8
那XP下就沒有可行的方法了?
Originally posted by pooronce at 2008-4-24 04:40 PM:


我用的是2003,而且Desktop早就移过位置的,倒没发现过这个问题:D




那XP下就沒有可行的方法了?
第9楼 abcd 发表于 2008-04-25 12:20
银牌会员 发帖 739 积分 1,436
不是说了用vbs返回给cmd吗?
第10楼 tavel 发表于 2008-04-25 12:29
新手上路 发帖 3 积分 8
Originally posted by tavel at 2008-4-24 12:43 PM:
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docum ...


返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!
第11楼 fastslz 发表于 2008-04-25 13:12
铂金会员 发帖 2,315 积分 5,493 来自 上海
Originally posted by tavel at 2008-4-25 12:29:


返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!

解决方法:
1:使用统配符del "%USERPROFILE%\桌*\*.lnk"
2:升级到Windows XP SP3
第12楼 abcd 发表于 2008-04-25 19:01
银牌会员 发帖 739 积分 1,436
第13楼 106942397 发表于 2008-04-25 20:33
初级用户 发帖 15 积分 29
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023