楼 主
高手帮忙解决一个桌面路径问题
发表于 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 性别 男
状态 离线
第 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 性别 男
状态 离线
第 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
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正