当批处理执行到“echo 2、加入关卡名称 ...”这一片段,并循环到第48个文件时,字符串会"断节"。
下图截图中提示的“文件名、目录名或卷标语法不正确”,是原来应该被双引号包含的完整文件名,不知道什么原因,后双引号直接把文件名字符串切成两半,从这个后半个引号开始的字符串将以改写模式接在行首(非插入模式),而被切开的后半段文件名就会被覆盖。
以上是我看到的现象,能力有限测试无果,直到7楼大牛点出问题关键,恍然大悟。
步骤1切割得到的90个文件,即使单独使用"2、加入关卡名称 ..."也同样有问题,问题不在第48个文件上,我也测试过在其他位置断节。- @echo off
- setlocal enabledelayedexpansion
- COLOR 1F
- set /a N48=0
- for /f "delims=" %%a in ('dir /b /on Author\*')do (
- set /a N48+=1
- echo %%a !N48!
- if !N48! GEQ 48 pause
- for /f "delims=" %%i in (.\Author\%%a) do (
- echo "%%i"===="我会切开第48个文件名字符串"=====
- )
- )
- echo ---------ok-------- & pause
- goto:eof
复制代码 ---------------------------
最后,说个小问题,楼主给的文件,发现一不规范的标题文件,但这不是问题,改改。 |