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

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

Ответить
Настройки темы
CMD/BAT - работа со строками, а именно редактирование строк в текстовом файле

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


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

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


Привет всем!
Помогите мне, пожалуйста, в следующем вопросе.
Мне необходимо написать батник, и возникла проблема в следующем вопросе.
В батнике должна осуществляться работа со строками, а именно редактирование строк в текстовом файле. Для этого мне необходимо присвоить строки данного файла, но строки содержат символы "=" и ковычки. Из-за данных символов батник работает некорректно.
Подскажите пожалуйста как можно осуществить присвоение длинного имени с этими символами?

очень надеюсь на вашу помощь

Отправлено: 13:02, 17-10-2014

 

Ветеран


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

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


Vlad_705, выложите на форум Ваш текстовый файл в архиве и опишите подробно, что Вы хотите с ним делать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:14, 17-10-2014 | #2



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

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


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


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

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


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

Georgio,
Вложил архив, в котором 2 файла: батник и документ Web.config (открываю через блокнот).
в документе много строчек, которые необходимо заменить, конструкцию написания батника вроде как я освоил.
но возникла проблема, как видно в файле строчки имеют очень сложный состав символов, с "=" и кавычками (""), из-за этого возникает проблема поиска строк в файле (из-за "=", переприсваивании переменной).

Я думаю есть какой-нибудь синтаксис для корректного написания такой длинной переменной (как то обособляя всю переменную например:
<add key="OikIporterGetDataFromXml" value="true" /> вот такая строка с различными символами и батнику необходимо ее найти и например удалить, в других случаях исправить какое-нибудь значение в этой строке, но батник ее не находит из-за символа "=" )

помогите, пожалуйста, исправить эту проблему, или как-нибудь обойти ее иначе

Отправлено: 15:15, 17-10-2014 | #3


Ветеран


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

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


Цитата Vlad_705:
и документ Web.config »
Вот прямо так, с пронумерованными строчками «1.», «2.», «3.»? Впечатление, что это ошмётки какого-то xml в UTF-8 with BOM. Это не Web.config — Википедия?

Отправлено: 05:18, 18-10-2014 | #4


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


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

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


Iska, нет это не web.config википедия.
Задача в следующем, приходит обновление ПО c config, который необходимо автоматизированно исправить. В config который скинул я, отражены некоторые моменты которые нужно исправить. Пронумерованные строчки сделал я, поскольку наглядно удалос проследить правилность написание кода. В идеале номерации строчек в далнейшем не будет, т.е на них основываться нелзя.
Чтобы осуществить данную задачу, как я понимаю, необходимо работать со сторой в целом, т.е необходимо присвоить целую строку одной переменной , но загвостка в том что в переменной символы "=" и ковычки, в связи с чем код не корректно работает.
помогите, пожалуйста, в решении данной проблемы. (присвоении целой строки одной переменной , или возможно решит задачу иначи)

т.е как я привел в примере, например:
set str5=add key="LocalEnterprise"

в данном присвоении некоректно заданна переменная.
может как то можно обособит ее с помощю синтаксиса, например
set str5=[add key="LocalEnterprise"]
ребята помогите, пожалуйста.

Отправлено: 20:30, 19-10-2014 | #5


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


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

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


Подскажите, поалуйста, процедуру, которая позволяет пробегаться по всему тексту файла (конфига) и находить символ "=" и заменять его например на букву Z.

setlocal enabledelayedexpansion
for /F "tokens=* delims=," %%n in (!infile!) do (
set LINE=%%n
set LINE=!LINE: (поставив его сюда)

@echo !LINE!>>Web_new.config
)
endlocal

если получится я обязателно поделюсь и напишу что получилось.
Очен надеюсь на вашу помощь

Отправлено: 21:00, 19-10-2014 | #6


Ветеран


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

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


Цитата Vlad_705:
Пронумерованные строчки сделал я, »
Не делайте так больше. Потому как просят именно оригинальную версию. Один лишний или, напротив, отсутствующий пробел может радикально повлиять на работоспособность скрипта, а выяснение этого постфактум ничего, кроме закономерного раздражения у пишущего не вызывает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:46, 19-10-2014 | #7


Ветеран


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

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


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

set "in=Web.config"
set "out=Web_new.config"

echo Install PAK "Redy"

@>"%out%" (
for /f "usebackq delims=" %%i in ("%in%") do @(
 for /f "tokens=1-6 delims== " %%j in ("%%i") do @(
  (
  for %%p in (
   "CompanyProperty company"
   "UseDemoEss 0"
   "SaveEssData false"
   "CrmXmlSourceFilesUsing false"
   "OikIporterGetDataFromXml false"
   ) do @(
   for /f "tokens=1,2" %%q in (%%p) do @(
    if "%%l"==""%%q"" (
     echo %%j %%k=%%l %%m="%%r" %%o
     )
    )
   )
   )& (
  if "%%j"=="<windousAuthentication" (
   echo %%j %%k="true" %%m
   )
  )& (
  if "%%k"=="name" (
   for /f "delims=" %%s in ("< />") do @(
    echo %%s
    )
   )
  )& (
  if "%%j"==""Domains"" (
   echo %%j= "cdu,oducn,oducz,odusb,odusv,oduur,oduvs,oduyu"
   )
  )& (
  if "%%j"=="description" (
   echo company
   )
  )
  )
 )| findstr "^"|| (
 echo %%i
 )
)

echo      COMPLETED

exit /b

Последний раз редактировалось Georgio, 20-11-2014 в 21:50.


Отправлено: 17:26, 20-10-2014 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? VladZombie Скриптовые языки администрирования Windows 70 08-09-2020 13:28
VBS/WSH/JS - Изменение времени строк в текстовом файле на определенную величину RadioSys Скриптовые языки администрирования Windows 6 31-07-2012 20:22
CMD/BAT - Подсчет количества строк в текстовом файле sl1mus Скриптовые языки администрирования Windows 3 28-06-2012 21:29
VBS/WSH/JS - Поиск\редактирование строки в текстовом файле pavvel Скриптовые языки администрирования Windows 2 11-04-2012 16:38
В текстовом файле 1500 строк и 14 слов отображаются крякозябрами kigerman Хочу все знать 9 26-03-2012 10:10




 
Переход