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
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 www.cn-dos.net/forum/viewthrea ...

作者: terrytong     时间: 2008-4-24 15:09
收下好好学习。

作者: pooronce     时间: 2008-4-24 16:40
Originally posted by dikex at 2008-4-24 03:04 PM: xp上面reg query 的bug www.cn-dos.net/forum/viewthrea ...
我用的是2003,而且Desktop早就移过位置的,倒没发现过这个问题

作者: tavel     时间: 2008-4-25 12:08    标题: 那XP下就沒有可行的方法了?
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
Originally posted by tavel at 2008-4-24 12:43 PM: 用批处理写了一个小软件,需要实现以下功能: 把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。 del %SystemDrive%\Docum ...
返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!

作者: fastslz     时间: 2008-4-25 13:12
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 把这个路径的"桌面"那些中文字 各写一条简繁体不就成了吗?