У меня проблема с командой GOTO и аффилированными ярлыками.
Факты: Учитывая кучу файлов из папки (это ошибки журнала), мне нужно открыть их и проверить, содержит ли они определенную строку. Если да, то удалите некоторые символы (все символы после последнего появления "_", включая себя) из имен файлов и выполняйте другие операции.
Для отсечения символов я использую команду GOTO в цикле, как я нашел здесь: http://www.robvanderwoude.com/battech_while_loops.php
script:
@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
script не запущен, потому что после метки labelEnd есть пустая строка?! Если я пишу какие-либо инструкции сразу после этого ярлыка, они будут выполнены, но остальные итерации из первого для оператора не будут выполнены (папка с ошибками журнала содержит более одного файла)
Может ли кто-нибудь помочь?