中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 00:58
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理变量中的空格问题
可打印版本  1,029 / 11
第1楼 chujiafu 发表于 2010-07-18 11:06
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
批处理变量中的空格问题
想用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 ]

附件
Wfolder2.rar (4.2 KiB)
第2楼 slore 发表于 2010-07-19 09:23
铂金会员 发帖 2,478 积分 5,212
echo %folder%
完整么?
如果完整就加引号就好了。
第3楼 chujiafu 发表于 2010-07-19 10:44
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
完整,加引号也不行,后2项仍不能成功,显示“命令行参数太多”。

[ Last edited by chujiafu on 2010-7-19 at 10:49 ]
第4楼 slore 发表于 2010-07-20 09:24
铂金会员 发帖 2,478 积分 5,212
"%folder%\My pictures"
不是
"%folder%"\My pictures
第5楼 lovelymorning 发表于 2010-07-20 21:32
初级用户 发帖 72 积分 131


[ Last edited by lovelymorning on 2010-7-20 at 21:34 ]
第6楼 chujiafu 发表于 2010-07-21 17:54
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
Re 4楼slore兄:"%folder%\My pictures"也不行,错误提示为“命令行参数太多”;

Re 5楼 lovelymorning兄:方法可行,但Wfolder2初始选择文件夹时不是D:盘,而是批处理文件所在的文件夹。请问lovelymorning兄,如何在你的批处理里让Wfolder2初始选择的文件夹是D:盘呀?
第7楼 lovelymorning 发表于 2010-07-21 21:12
初级用户 发帖 72 积分 131



Win7 系统,这个 wf…… 没法搞成初始选择D盘的。。。。。
第8楼 chujiafu 发表于 2010-07-21 21:57
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
Re 7楼lovelymorning兄:不行,提示“命令行参数太多"。
第9楼 lovelymorning 发表于 2010-07-21 22:28
初级用户 发帖 72 积分 131


Win7系统。没测试。。。不保能用。。。。
第10楼 chujiafu 发表于 2010-07-22 09:19
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
在XP下终于成功了,感谢lovelymorning兄。lovelymoning兄真乃批处理高手呀。

lovelymorning兄能不能解释一下9楼批处理中的第4行呀?
第11楼 lovelymorning 发表于 2010-07-22 14:09
初级用户 发帖 72 积分 131
for /f "delims=" %%a in ('echo %Folder%') do (set Folder=%%~a)

只是将 folder 这个变量给去掉 引号 而已。。。
第12楼 chujiafu 发表于 2010-07-22 15:44
银牌会员 发帖 595 积分 1,339 来自 安徽 宿州
谢谢lovelymorning兄。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023