我有GOTO命令和附属标签的问题。与goto命令不起作用的windows批处理文件
事实:给定文件夹中的一堆文件(它们是日志错误)我需要打开它们并检查它们是否包含特定的字符串。如果是,则从文件名中删除一些字符(最后出现“_”后的所有字符,包括它们自己)并执行其他操作。
对于一个循环的方式切断我使用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语句开始的其余迭代不会被执行(日志错误文件夹包含更多的一个文件)
有人可以提供帮助吗?
显示您的日志文件样本,包含要查找的字符串以及需要删除的内容。显示你想要的最终输出。 – ghostdog74 2010-10-20 14:09:00
从我的角度来看,它与内容无关,但其实现方式 – Ergil 2010-10-25 08:21:10