2016-10-17 61 views
0

我已經很接近我想要什麼和腳本文件是否只清潔運行良好,但大多有幾個每行註釋,他們幾個人在/* ... */裏面的塊需要刪除其他垃圾。過程包含在幾個文件中的字符串(Windows批處理)

所以我只是想處理具有字符串level.waypoints

這裏是我現在有行:

@echo off 
setlocal enableDelayedExpansion 

set findtext="level.waypoints" 
for %%F in (*.gsc) do (
    set "out=" 
    set "i=x" 
    > "%%~nF.cfg" (
    for /f usebackq^ tokens^=2^,4^,5^ delims^=[]^=(^)^;^"^ %%A in ("%%F") do (
     if %%A neq !i! (
     if defined out echo !out!" 
     set /a "i=%%A, j=0" 
     set "out=set flwp_!i! "!i!" 

    ) else (
     set /a j+=1 
     if !j! leq 3 (set "out=!out!,%%B") else set "out=!out!,%%C" 
    ) 

    ) 
    if defined out echo !out!" 
    set /a "fim=i+1" 
    echo set flwp_!fim! "eof" 
) 
) 

我想在添加findstr %findtext%到這些循環,但我在許多不同的方式tryed ,但沒有成功,但可悲...你能幫我嗎?

非常感謝你!

+0

請解釋一下你正在努力實現由[編輯]腳本(http://stackoverflow.com/什麼帖子/ 40093874 /編輯)你的問題!如果沒有反向工程,就不可能得到你的意圖... – aschipfl

+0

@aschipfl FOR是完美的,並且工作正常...我只是希望語法將其更改爲僅使用此字符串處理行。或者在執行之前從每個* .gsc文件中清除everyline的腳本也可以工作,我認爲這會更簡單。 – Hajas

+0

你嘗試更改設置你的'從'( 「%% F」)/ F'循環''到( '發現 「level.waypoints」 「%%〜F」')'?你正在努力實現的是什麼? – aschipfl

回答

1

如果你只是想刪除的每個.gsc文件包含字符串的行level.waypoints

@echo off 
set "findtext=level.waypoints" 

for %%a in (*.gsc) do (
    for /f "delims=" %%b in ('type "%%a"') do (
     echo %%b | find /i "%findtext%" >nul || echo %%b >>"%%~na_New%%~xa" 
    ) 
    move "%%~na_New%%~xa" "%%a" 2>nul 
) 
+0

這個簡單的崩潰,我甚至不能關機用任務管理器。 – Hajas

+0

一旁的崩潰,我需要刪除每行不具備該字符串,並且不希望新文件,原始可以更換,沒有問題,謝謝! – Hajas

相關問題