|
tavel
新手上路

积分 8
发帖 3
注册 2008-1-11
状态 离线
|
『楼 主』:
高手帮忙解决一个桌面路径问题
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk
难点是要简繁体系统都可以用的
是不是桌面有没有一个系统路径?类似于%systemdrive%?
|
|
2008-4-24 12:43 |
|
|
pooronce
中级用户
  
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
『第
2 楼』:
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"
|
|
2008-4-24 12:55 |
|
|
dikex
高级用户
    潜水修练批处理
积分 788
发帖 366
注册 2006-12-31
状态 离线
|
『第
3 楼』:
注意空格,在路径两旁加双引号,另外不需要使用8.3的文件名规则,除非你在纯dos下;
还有可以使用%USERPROFILE%这个环境变量,代码当前用户的文件夹
del "%USERPROFILE%\桌面\a.lnk"
|

正在潜水修练的批处理小白 |
|
2008-4-24 13:45 |
|
|
regvip2008
初级用户
 
积分 187
发帖 87
注册 2007-10-23
状态 离线
|
『第
4 楼』:
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%\桌”这样的结果呢?
怎么会少了一个“面”字呢?
|
|
2008-4-24 14:24 |
|
|
dikex
高级用户
    潜水修练批处理
积分 788
发帖 366
注册 2006-12-31
状态 离线
|
|
2008-4-24 15:04 |
|
|
terrytong
中级用户
  
积分 240
发帖 115
注册 2008-3-10
状态 离线
|
|
2008-4-24 15:09 |
|
|
pooronce
中级用户
  
积分 484
发帖 250
注册 2007-6-5
状态 离线
|
|
2008-4-24 16:40 |
|
|
tavel
新手上路

积分 8
发帖 3
注册 2008-1-11
状态 离线
|
『第
8 楼』:
那XP下就沒有可行的方法了?
Originally posted by pooronce at 2008-4-24 04:40 PM:
我用的是2003,而且Desktop早就移过位置的,倒没发现过这个问题:D
那XP下就沒有可行的方法了?
|
|
2008-4-25 12:08 |
|
|
abcd
银牌会员
    
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
9 楼』:
不是说了用vbs返回给cmd吗?
|
|
2008-4-25 12:20 |
|
|
tavel
新手上路

积分 8
发帖 3
注册 2008-1-11
状态 离线
|
『第
10 楼』:
Originally posted by tavel at 2008-4-24 12:43 PM:
用批处理写了一个小软件,需要实现以下功能:
把桌面上的一个快捷方式a.lnk删除掉。我是这样写的,可是在繁体系统中不能用。
del %SystemDrive%\Docum ...
返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!
|
|
2008-4-25 12:29 |
|
|
fastslz
铂金会员
       DOS一根葱
积分 5493
发帖 2315
注册 2006-5-1 来自 上海
状态 离线
|
『第
11 楼』:
Originally posted by tavel at 2008-4-25 12:29:
返回的时候变成了“桌”了,“面”字被吞掉了。所以执行命令不成功!期待更好的解决方法!
解决方法:
1:使用统配符del "%USERPROFILE%\桌*\*.lnk"
2:升级到Windows XP SP3
|

第一高手 第二高手
我的小站
 |
|
2008-4-25 13:12 |
|
|
abcd
银牌会员
    
积分 1436
发帖 739
注册 2007-10-11
状态 离线
|
『第
12 楼』:
@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
|
|
2008-4-25 19:01 |
|
|
106942397
初级用户
 
积分 29
发帖 15
注册 2008-4-23
状态 离线
|
『第
13 楼』:
del %SystemDrive%\Docume~1\%UserName%\桌面\a.lnk
把这个路径的"桌面"那些中文字
各写一条简繁体不就成了吗?
|
|
2008-4-25 20:33 |
|