标题: 高手帮忙解决一个桌面路径问题
[打印本页]
作者: 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
我用的是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
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?