|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『楼 主』:
批处理变量中的空格问题
想用Wfolder2自定义“我的文档”文件夹,批处理如下:
Wfolder2 "SET Folder=" "D:" "选择文件夹" > temp.bat
call temp.bat
del temp.bat
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /V "Personal" /t REG_EXPAND_SZ /D %folder% /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Favorites" /T REG_EXPAND_SZ /D %folder%\Favorites /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Cookies" /T REG_EXPAND_SZ /D %folder%\Cookies /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My pictures" /T REG_EXPAND_SZ /D %folder%\My pictures /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My music" /T REG_EXPAND_SZ /D %folder%\My music /f >nul
现在的问题是:如果选择的文件夹中没有空格,5个都能成功;一旦选择的文件夹中有空格,前3项能成功,后2项不能成功,显示“命令行参数太多”。
如何解决?
附件是批处理中要用到的Wfolder2
[ Last edited by chujiafu on 2010-7-19 at 10:43 ]
附件
1: Wfolder2.rar (2010-7-18 11:06, 4.2 K, 下载附件所需积分 1 点
,下载次数: 2)
|
|
2010-7-18 11:06 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
2 楼』:
echo %folder%
完整么?
如果完整就加引号就好了。
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2010-7-19 09:23 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
3 楼』:
完整,加引号也不行,后2项仍不能成功,显示“命令行参数太多”。
[ Last edited by chujiafu on 2010-7-19 at 10:49 ]
|
|
2010-7-19 10:44 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
4 楼』:
"%folder%\My pictures"
不是
"%folder%"\My pictures
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2010-7-20 09:24 |
|
|
lovelymorning
初级用户
积分 131
发帖 72
注册 2008-2-24
状态 离线
|
『第
5 楼』:
@echo off
for /f "delims=" %%a in ('Wfolder2') do (for %%b in (Personal,Favorites,Cookies,"My pictures","My music") do (if not "%%b"=="Personal" (reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v %%b /T REG_EXPAND_SZ /D "%%~a\%%~b" /f) else (reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v %%b /T REG_EXPAND_SZ /D "%%~a" /f)))
pause [ Last edited by lovelymorning on 2010-7-20 at 21:34 ]
|
|
2010-7-20 21:32 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
6 楼』:
Re 4楼slore兄:"%folder%\My pictures"也不行,错误提示为“命令行参数太多”;
Re 5楼 lovelymorning兄:方法可行,但Wfolder2初始选择文件夹时不是D:盘,而是批处理文件所在的文件夹。请问lovelymorning兄,如何在你的批处理里让Wfolder2初始选择的文件夹是D:盘呀?
|
|
2010-7-21 17:54 |
|
|
lovelymorning
初级用户
积分 131
发帖 72
注册 2008-2-24
状态 离线
|
『第
7 楼』:
>temp.bat Wfolder2 "SET Folder=" "D:" "选择文件夹"
for /f "delims=" %%a in ('call temp.bat') do (
del temp.bat
for %%b in (Personal,Favorites,Cookies,"My pictures","My music") do (
if not "%%b"=="Personal" (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v %%b /T REG_EXPAND_SZ /D "%%~a\%%~b" /f
) else (
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v %%b /T REG_EXPAND_SZ /D "%%~a" /f
)
)
) Win7 系统,这个 wf…… 没法搞成初始选择D盘的。。。。。
|
|
2010-7-21 21:12 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
8 楼』:
Re 7楼lovelymorning兄:不行,提示“命令行参数太多"。
|
|
2010-7-21 21:57 |
|
|
lovelymorning
初级用户
积分 131
发帖 72
注册 2008-2-24
状态 离线
|
『第
9 楼』:
Wfolder2 "SET Folder=" "D:" "选择文件夹" > temp.bat
call temp.bat
del temp.bat
for /f "delims=" %%a in ('echo %Folder%') do (set Folder=%%~a)
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /V "Personal" /t REG_EXPAND_SZ /D "%folder%" /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Favorites" /T REG_EXPAND_SZ /D "%folder%\Favorites" /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Cookies" /T REG_EXPAND_SZ /D "%folder%\Cookies" /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My pictures" /T REG_EXPAND_SZ /D "%folder%\My pictures" /f >nul
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "My music" /T REG_EXPAND_SZ /D "%folder%\My music" /f >nul Win7系统。没测试。。。不保能用。。。。
|
|
2010-7-21 22:28 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
10 楼』:
在XP下终于成功了,感谢lovelymorning兄。lovelymoning兄真乃批处理高手呀。
lovelymorning兄能不能解释一下9楼批处理中的第4行呀?
|
|
2010-7-22 09:19 |
|
|
lovelymorning
初级用户
积分 131
发帖 72
注册 2008-2-24
状态 离线
|
『第
11 楼』:
for /f "delims=" %%a in ('echo %Folder%') do (set Folder=%%~a)
只是将 folder 这个变量给去掉 引号 而已。。。
|
|
2010-7-22 14:09 |
|
|
chujiafu
银牌会员
积分 1329
发帖 591
注册 2004-5-26 来自 安徽 宿州
状态 离线
|
『第
12 楼』:
谢谢lovelymorning兄。
|
|
2010-7-22 15:44 |
|