楼 主
[求助]请教For循环中,如何支持带空格路径
发表于 2007-07-07 22:51 · 中国 广西 防城港 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
例如:
For %%i in (%BmpList%) do If %%~zi EQU 0 Del "%BmpList%"
上面这句,如果%BmpList%带有空格就出问题,又不能在in中采用"%BmpList%" 这样的办法支持空格,请大大们只招,谢了
第 2 楼
发表于 2007-07-08 09:39 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
第 3 楼
发表于 2007-07-08 15:50 · 中国 广西 防城港 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
Originally posted by lxmxn at 2007-7-8 09:39 AM:
怎么不能加上引号?
比如 set BmpList=%temp%\bmp.txt
如果是用"%BmpList%"的话,我这里运行后for并不在bmp.txt里寻找,而是在%temp%\bmp.txt得出的字符串里寻找。
第 4 楼
发表于 2007-07-09 01:03 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
你測試過沒有?
C:\>type "C:\Documents and Settings\Administrator\桌面\d.bat"
@echo off
set ok=c:\Documents and Settings\Administrator\_viminfo
for %%a in ("%ok%") do @echo\%%~nxa&echo %%~dpa&echo %%~za
pause
C:\>"C:\Documents and Settings\Administrator\桌面\d.bat"
_viminfo
c:\Documents and Settings\Administrator\
9042
请按任意键继续. . .
第 5 楼
发表于 2007-07-09 15:52 · 中国 广西 百色 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
我测试了,在我的电脑上运行你上面的for得出的结果是:
_viminfo
c:\Documents and Settings\Administrator\
ECHO 处于关闭状态。
请按任意键继续. . .
不知道是什么问题了,难道我电脑的cmd有问题?
第 6 楼
发表于 2007-07-09 17:02 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
第 7 楼
发表于 2007-07-09 17:03 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
第 8 楼
发表于 2007-07-09 17:38 · 中国 广西 百色 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
我明白了,原来for如果加了/f就会把"c:\Documents and Settings\Administrator\_viminfo"看成字符串了,晕。
第 9 楼
发表于 2007-07-09 17:53 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
第 10 楼
发表于 2007-07-10 01:17 · 中国 广西 防城港 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
Originally posted by lxmxn at 2007-7-9 05:53 PM:
那你为什么给的代码没有/f参数呢?
是我偷懒了,对不起,请问下如果在加/f的情况下有办法使用带空格的路径文件吗?
第 11 楼
发表于 2007-07-10 11:15 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
那要看你想得到什么?
如果是分析文件的内容,可以这样:
for /f "usebackq delims=" %a in ("C:\Documents and Settings\Administrator\_vimrc") do @echo\%a
如果想得到文件的属性,可以这样:
for /f "delims=" %a in ("C:\Documents and Settings\Administrator\_vimrc") do @echo\%~nxa&echo\%~za
第 12 楼
发表于 2007-07-10 18:03 · 中国 广西 百色 电信
初级用户
★
积分 72 发帖 26 注册 2007-05-17 18:42 19年会员 UID 88849 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正