我有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