中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 09:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手帮忙解决一个桌面路径问题 查看 1,262 回复 12
楼 主 高手帮忙解决一个桌面路径问题 发表于 2008-04-24 12:43 ·  中国 广东 佛山 顺德区 电信
新手上路
积分 8
发帖 3
注册 2008-01-11 20:49
18年会员
UID 108341
性别 男
状态 离线
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk


难点是要简繁体系统都可以用的
是不是桌面有没有一个系统路径?类似于%systemdrive%?
2 发表于 2008-04-24 12:55 ·  中国 上海 黄浦区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线

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 发表于 2008-04-24 13:45 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
注意空格,在路径两旁加双引号,另外不需要使用8.3的文件名规则,除非你在纯dos下;
还有可以使用%USERPROFILE%这个环境变量,代码当前用户的文件夹
del "%USERPROFILE%\桌面\a.lnk"
正在潜水修练的批处理小白
4 发表于 2008-04-24 14:24 ·  中国 湖南 长沙 电信
初级用户
★★
积分 187
发帖 87
注册 2007-10-23 16:04
18年会员
UID 100558
性别 男
状态 离线
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 发表于 2008-04-24 15:04 ·  中国 广东 广州 天河区 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
正在潜水修练的批处理小白
6 发表于 2008-04-24 15:09 ·  中国 上海 上海地面通信息网络有限公司
中级用户
★★
积分 240
发帖 115
注册 2008-03-10 19:31
18年会员
UID 112561
性别 男
状态 离线
收下好好学习。
7 发表于 2008-04-24 16:40 ·  中国 上海 黄浦区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
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 那XP下就沒有可行的方法了? 发表于 2008-04-25 12:08 ·  中国 广东 佛山 顺德区 电信
新手上路
积分 8
发帖 3
注册 2008-01-11 20:49
18年会员
UID 108341
性别 男
状态 离线
Originally posted by pooronce at 2008-4-24 04:40 PM:


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




那XP下就沒有可行的方法了?
9 发表于 2008-04-25 12:20 ·  中国 浙江 杭州 联通
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
不是说了用vbs返回给cmd吗?
10 发表于 2008-04-25 12:29 ·  中国 广东 佛山 顺德区 电信
新手上路
积分 8
发帖 3
注册 2008-01-11 20:49
18年会员
UID 108341
性别 男
状态 离线
Originally posted by tavel at 2008-4-24 12:43 PM:
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docum ...


返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!
11 发表于 2008-04-25 13:12 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
Originally posted by tavel at 2008-4-25 12:29:


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

解决方法:
1:使用统配符del "%USERPROFILE%\桌*\*.lnk"
2:升级到Windows XP SP3
第一高手 第二高手

12 发表于 2008-04-25 19:01 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
@echo off
for /f "tokens=1* delims== " %%i in ('wmic /namespace:\\root\default path stdregprov call getstringvalue ^^^&h80000001^,"Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"^,"desktop"^|findstr /i "sValue"') do echo %%j
pause
13 发表于 2008-04-25 20:33 ·  中国 广东 江门 新会区 电信
初级用户
积分 29
发帖 15
注册 2008-04-23 20:23
18年会员
UID 116742
性别 男
状态 离线
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?
论坛跳转: