Board logo

标题: 高手帮忙解决一个桌面路径问题 [打印本页]

作者: tavel     时间: 2008-4-24 12:43    标题: 高手帮忙解决一个桌面路径问题

用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk


难点是要简繁体系统都可以用的
是不是桌面有没有一个系统路径?类似于%systemdrive%?
作者: pooronce     时间: 2008-4-24 12:55
[shell]
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"
[/shell]
作者: dikex     时间: 2008-4-24 13:45
注意空格,在路径两旁加双引号,另外不需要使用8.3的文件名规则,除非你在纯dos下;
还有可以使用%USERPROFILE%这个环境变量,代码当前用户的文件夹
del "%USERPROFILE%\桌面\a.lnk"
作者: regvip2008     时间: 2008-4-24 14:24


  Quote:
Originally posted by pooronce at 2008-4-24 12:55 PM:
[shell]
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%\桌”这样的结果呢?
怎么会少了一个“面”字呢?
作者: dikex     时间: 2008-4-24 15:04
xp上面reg query 的bug

http://www.cn-dos.net/forum/view ... ghlight=reg%2Bquery
作者: terrytong     时间: 2008-4-24 15:09
收下好好学习。
作者: pooronce     时间: 2008-4-24 16:40


  Quote:
Originally posted by dikex at 2008-4-24 03:04 PM:
xp上面reg query 的bug

http://www.cn-dos.net/forum/view ... ghlight=reg%2Bquery

我用的是2003,而且Desktop早就移过位置的,倒没发现过这个问题
作者: tavel     时间: 2008-4-25 12:08    标题: 那XP下就沒有可行的方法了?



  Quote:
Originally posted by pooronce at 2008-4-24 04:40 PM:


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

那XP下就沒有可行的方法了?
作者: abcd     时间: 2008-4-25 12:20
不是说了用vbs返回给cmd吗?
作者: tavel     时间: 2008-4-25 12:29


  Quote:
Originally posted by tavel at 2008-4-24 12:43 PM:
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docum ...

返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!
作者: fastslz     时间: 2008-4-25 13:12


  Quote:
Originally posted by tavel at 2008-4-25 12:29:


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

解决方法:
1:使用统配符del "%USERPROFILE%\桌*\*.lnk"
2:升级到Windows XP SP3
作者: abcd     时间: 2008-4-25 19:01

@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

作者: 106942397     时间: 2008-4-25 20:33
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?