Haart
01-02-2015, 13:28
У меня есть код
FUNC VOID DIA_SLD_6_LOCATION_Info()
{
AI_Output (other, self, "DIA_SLD_6_LOCATION_15_00"); //Bewacht ihr die Bauern?
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_01"); //Wir bewachen nicht nur Onars Hof, sondern das ganze Tal hier.
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02"); //Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
};
И мне надо перенести комментарии из одного файла в друго, что-бы в итоге выглядело так.
файл name0.txt
FUNC VOID DIA_SLD_6_LOCATION_Info()
{
AI_Output (other, self, "DIA_SLD_6_LOCATION_15_00");
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_01");
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02");
};
и файл name1.txt
//Bewacht ihr die Bauern?
//Wir bewachen nicht nur Onars Hof, sondern das ganze Tal hier.
//Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
Естественно файлы такими маленькими не бывают, и код до 5000 строк примерно.
В общем дело такое, есть код...
@echo off
for /f "tokens=1,2 delims=;" %%i in ('"type "name0.txt"& del "name0.txt""') do (
echo %%i;>>"name0.txt"
for /f "tokens=*" %%k in ("%%j") do (
echo %%k>>"name1.txt"
)
)
exit/b
Переносит комментарии из одного файла в другой, все работает, но... Но работает нормально, если есть только строки
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02"); //Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
А если есть лишние строки, вроде скобок, if-else и иных функций, то добавляет к ним знак точки с запятой - ;
Что в итоге конкретно портит код и приходится его дольше чистить, чем вручную выдрать комменты из файла.
Может кто помочь доработать bat код, сам я в нем дуб дубом, ничего не понимаю.
З.Ы. Если у кого возникнет вопрос, а нафиг вообще выдирать комментарии, то скажу так, это вовсе не комментарии - это диалоги, просто в коде они написаны так.
FUNC VOID DIA_SLD_6_LOCATION_Info()
{
AI_Output (other, self, "DIA_SLD_6_LOCATION_15_00"); //Bewacht ihr die Bauern?
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_01"); //Wir bewachen nicht nur Onars Hof, sondern das ganze Tal hier.
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02"); //Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
};
И мне надо перенести комментарии из одного файла в друго, что-бы в итоге выглядело так.
файл name0.txt
FUNC VOID DIA_SLD_6_LOCATION_Info()
{
AI_Output (other, self, "DIA_SLD_6_LOCATION_15_00");
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_01");
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02");
};
и файл name1.txt
//Bewacht ihr die Bauern?
//Wir bewachen nicht nur Onars Hof, sondern das ganze Tal hier.
//Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
Естественно файлы такими маленькими не бывают, и код до 5000 строк примерно.
В общем дело такое, есть код...
@echo off
for /f "tokens=1,2 delims=;" %%i in ('"type "name0.txt"& del "name0.txt""') do (
echo %%i;>>"name0.txt"
for /f "tokens=*" %%k in ("%%j") do (
echo %%k>>"name1.txt"
)
)
exit/b
Переносит комментарии из одного файла в другой, все работает, но... Но работает нормально, если есть только строки
AI_Output (self, other, "DIA_SLD_6_LOCATION_06_02"); //Onar will, dass wir jeden, der hier Mist baut, hart rannehmen. Also benimm dich.
А если есть лишние строки, вроде скобок, if-else и иных функций, то добавляет к ним знак точки с запятой - ;
Что в итоге конкретно портит код и приходится его дольше чистить, чем вручную выдрать комменты из файла.
Может кто помочь доработать bat код, сам я в нем дуб дубом, ничего не понимаю.
З.Ы. Если у кого возникнет вопрос, а нафиг вообще выдирать комментарии, то скажу так, это вовсе не комментарии - это диалоги, просто в коде они написаны так.