Board logo

标题: [文件操作] 批处理if文中空格的用处是什么? [打印本页]

作者: zhushjbathhome    时间: 2010-11-21 11:41     标题: 批处理if文中空格的用处是什么?

有以下8个文件夹:
群星.-.[一人一首成名曲].专辑.CD1
群星.-.[一人一首成名曲].专辑.CD2
群星.-.[一人一首成名曲].专辑.CD3
...
群星.-.[一人一首成名曲].专辑.CD8

每个文件夹下面的文件如下:
    01 Track01.ape
    02 Track02.ape
    03 Track03.ape
...

现在有 专辑介绍.txt 文件一个,大致的内容如下,为了节省空间,文件名没有全部列出:

专辑曲目:

CD1:
01-生命之曲(林子祥)
02-不装饰你的梦(蔡国权)
03-顺流、逆流(徐晓凤)
...
CD2:
01-爱在深秋(谭咏麟)
02-堆积情感(邓美云)
03-遥远的她(张学友)
...

想读取专辑简介里面的内容,重新命名文件夹下面的所有文件,
setlocal enabledelayedexpansion
set "filePath=群星.-.[一人一首成名曲].专辑.CD"
set /a indexStart=1
set /a indexEnd=8
set startFlg=N
(
for /l %%i in (%indexStart%,1,%indexEnd%) do (
for /f "delims=- tokens=1,2" %%j in (专辑介绍.txt) do (
  if !startFlg!==Y (ren .\%filePath%%%i\%%j*.ape %%j-%%k.ape)
if %%j==CD%%i:(set startFlg=Y)
  set /a endNum=%%i+1
  if %%j==CD!endNum!: (goto nextPath)
)
:nextPath
set startFlg=N
)
)>log.txt
pause

现象:
红色代码中:的后面如果有个半角空格,就会报系统找不到指定文件的错误,去掉半角空格,也就是:和(之间没有字符的情况下,能正常执行。
问题:
if 文后面的空格应该没有影响啊,这是为什么呢?
作者: sgaizxt001    时间: 2010-11-21 14:20

if "%%j"=="cd%%i:"
这样看看呢




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2