我有GOTO命令和附属标签的问题。
事实:鉴于从文件夹中的一堆文件(他们是错误日志),我需要打开它们,检查它们是否包含一个特定的字符串。 如果是,那么消除文件名某些字符(的“_”最后出场后,所有的字符,包括自身)和其他操作。
用于切断字符我在一个循环方式使用GOTO命令,我发现这里所描述: http://www.robvanderwoude.com/battech_while_loops.php
脚本是:
@echo off
setlocal EnableDelayedExpansion
cls
for %%X in (D:\e-pub\outbox\logs\*.*) do (
for /F "tokens=7" %%S in (%%X) do (
if /i "%%S"=="<ml>" (
SET fisier=%%~nX
SET cond=!fisier:~-1!
SET fisier=!fisier:~0,-1!
:loopStart
rem condition to break the loop
if !cond!==_ goto loopEnd
SET cond=!fisier:~-1!
SET fisier=!fisier:~0,-1!
goto loopStart
:loopEnd
rem here it should be out of a loop
rem other stuff to do with var !fisier!
rem the following line is not executed because of the label loopEnd
echo !fisier!
)
)
)
pause
该脚本没有运行,因为在标号loopend后的空行? 如果我说的标签将被执行,但迭代从第一for语句休息之后编写任何指令不被执行(在错误日志文件夹中包含更多的一个文件)
有人可以提供帮助?