Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос "комментариев" из определенных строк файла - в другой файл.

Ответить
Настройки темы
CMD/BAT - Перенос "комментариев" из определенных строк файла - в другой файл.

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


У меня есть код
Код: Выделить весь код
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 код, сам я в нем дуб дубом, ничего не понимаю.

З.Ы. Если у кого возникнет вопрос, а нафиг вообще выдирать комментарии, то скажу так, это вовсе не комментарии - это диалоги, просто в коде они написаны так.

Отправлено: 13:28, 01-02-2015

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Haart:
Может кто помочь доработать bat код, сам я в нем дуб дубом, ничего не понимаю. »


Мои коды трудно понять даже специалисту!


Код: Выделить весь код
@echo off

for /f "delims=" %%i in ('"2>nul (type "name0.txt"& del "name0.txt" "name1.txt")"') do (
 for /f "tokens=1* delims=;" %%j in ("%%i") do (
  >>"name0.txt" (if "%%j" equ "%%i" (echo.%%j) else (echo %%j;))
  @>>"name1.txt" (for /f "tokens=*" %%l in ("%%k") do @echo %%l)
  )
 )

exit/b

P.S. В ближайшее время отвечу Вам и на другом форуме.
P.P.S. Дабы не моделировать "чёрный ящик", на этом форуме всё-таки принято выкладывать образцы Ваших реальных файлов, к тому же запакованных в архив.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:59, 01-02-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar Test.rar
(2.3 Kb, 5 просмотров)

Цитата Georgio:
P.S. В ближайшее время отвечу Вам и на другом форуме.
P.P.S. Дабы не моделировать "чёрный ящик", на этом форуме всё-таки принято выкладывать образцы Ваших реальных файлов, к тому же запакованных в архив. »
Ок, спасибо.

З.ы. архив с батником, и файлами.

Отправлено: 16:10, 01-02-2015 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Haart, вот поработал с Вашим реальным файлом и уже внёс изенение в код. Теперь код такой:


Код: Выделить весь код
@echo off

for /f "delims=" %%i in ('"2>nul (type "name0.txt"& del "name0.txt" "name1.txt")"') do (
 for /f "tokens=1* delims=;" %%j in ("%%i") do (
  >>"name0.txt" (if "%%j" equ "%%i" (echo.%%j) else (echo %%j;))
  @>>"name1.txt" (for /f "tokens=*" %%l in ("%%k") do @if "%%l" neq "" echo %%l)
  )
 )

exit/b

.

Отправлено: 18:34, 01-02-2015 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перенос "комментариев" из определенных строк файла - в другой файл.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" temphard Скриптовые языки администрирования Windows 12 10-01-2014 18:36
CMD/BAT - Копирование строк из одной файла в другой Kamerad Скриптовые языки администрирования Windows 3 28-01-2013 09:59
CMD/BAT - Перенос строк из одного файла в другой jackscorpse Скриптовые языки администрирования Windows 0 25-08-2012 00:31
CMD/BAT - [решено] Перенос и удаление строк из текстового файла sk8ter Скриптовые языки администрирования Windows 15 03-10-2010 19:35
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход