[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理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 文后面的空格应该没有影响啊,这是为什么呢?

if "%%j"=="cd%%i:"
这样看看呢
努力学习,努力挣分

TOP

返回列表