Имя пользователя:
Пароль:
 | Правила  

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

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

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


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

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


Изменения
Автор: semcrm
Дата: 03-06-2014
Вложения
Тип файла: zip Файл.zip
(2.7 Kb, 17 просмотров)
Есть файл. Содержит нестандартные символы переноса строки. Изменить одну его часть, не убрав эти символы.

Отправлено: 10:21, 31-05-2014

 

Ветеран


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

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


Используйте WSH, PoSH, записывая конец строки ручками, например:
Код: Выделить весь код
TextStream.Write "Text" & vbLf

Отправлено: 10:44, 31-05-2014 | #2



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

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


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


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

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


Что это было? Я не разбираюсь в этом! Что значит
Цитата Iska:
TextStream.Write "Text" & vbLf »
?
При запуске этого с ; (в конце) в файле file.wsh пишет:
Неверная ссылка на объект. Куда что приписывать?

Отправлено: 14:38, 31-05-2014 | #3


Ветеран


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

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


Цитата semcrm:
Я не разбираюсь в этом! »
Тогда указывайте детали: путь к файлу, что и на что менять (и по какому принципу).

Отправлено: 20:12, 31-05-2014 | #4


Ветеран


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

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


Код: Выделить весь код
@echo off
for /f %%i in ('
 ^<"1.7.5.json.txt" find /c /v ""
') do (
set m=%%i
)
set "command=vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(replace(replace("!string:1.7.5=ABCDE!","@#$",chr(34)),"$#@",chr(32))&chr(10))&close()"
setlocal enabledelayedexpansion
chcp 1251>nul
(
for /f "usebackq delims=" %%i in ("1.7.5.json.txt") do (
 set /a n+=1
 set string=%%i
 set "string=!string:"=@#$!"
 set "string=!string: =$#@!"
 if !n! lss %m% (
  mshta "%command%"
  ) else (
  mshta "%command:&chr(10)=%"
  )
 )
)>"Что должно получиться.txt"
endlocal
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:32, 31-05-2014 | #5


Ветеран


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

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


Ещё один вариант "гибридного" пакетного файла:

Код: Выделить весь код
' 2>nul& @cls& echo off& set "x= 2>nul& cls&"
'%x% for /f %%i in ('^<"1.7.5.json.txt" find /c /v ""') do set m=%%i
'%x% chcp 1251>nul
'%x% setlocal enabledelayedexpansion>"Что должно получиться.txt"
'%x% for /f "usebackq delims=" %%i in ("1.7.5.json.txt") do (
'%x% set string=%%i
'%x% set string=!string:"=@#$!
'%x% set /a n+=1
'%x% if !n! lss %m% (
'%x% start "" /wait wscript /nologo /e:vbscript "%~f0" "!string:1.7.5=ABCDE!") else (
'%x% set /p=%%i<nul>>"Что должно получиться.txt"))
'%x% endlocal& exit /b
CreateObject("Scripting.FileSystemObject").OpenTextFile("Что должно получиться.txt",8,true).Write(replace(WScript.Arguments(0),"@#$",chr(34))&chr(10))
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:19, 02-06-2014 | #6


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


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

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


Я долго мучился, пытаясь что-то сделать со строчкой
Цитата Georgio:
'%x% start "" /wait wscript /nologo /e:vbscript "%~f0" "!string:1.7.5=ABCDE!") else ( »


Проблема в том, что заместо 1.7.5 там должно быть подставлено значение переменной %version% , а вместо ABCDE - %new%. Помогите, никак не смог. Всё остальное я смог как-то подстроить под себя сам.

Отправлено: 12:08, 03-06-2014 | #7


Ветеран


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

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


Вот что получилось:

Код: Выделить весь код
' 2>nul& @cls& echo off& set "x= 2>nul&"
'%x% set /p "string="<"1.7.5.json.txt"
'%x% set "version=%string:~11,5%"
'%x% set "new=ABCDE"
'%x% for /f %%i in ('^<"1.7.5.json.txt" find /c /v ""') do set m=%%i
'%x% chcp 1251>nul
'%x% copy nul "Что должно получиться.txt">nul
'%x% for /f "usebackq delims=" %%i in ("1.7.5.json.txt") do (
'%x% set "string=%%i"
'%x% call set "string=%%string:"=@#$%%"
'%x% call set "string=%%string:%version%=%new%%%"
'%x% set /a n+=1
'%x% call echo %%n%%| >nul findstr /vx %m%&& (
'%x% call start "" /b /wait cscript /nologo /e:vbscript "%~f0" "%%string%%")|| (
'%x% call set /p"=%%string%%"<nul>>"Что должно получиться.txt"))
'%x% endlocal& exit /b
CreateObject("Scripting.FileSystemObject").OpenTextFile("Что должно получиться.txt",8,true).Write(replace(WScript.Arguments(0),"@#$",chr(34))&chr(10))
.


Значение переменной "version" будет считываться из файла "1.7.5.json.txt", а значение переменной "new", конечно, будете устанавливать сами.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:15, 03-06-2014 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Сборка текстового файла из содержимого другого текстового файла icomboy Скриптовые языки администрирования Windows 0 10-09-2013 15:17
VBS/WSH/JS - VBS: Редактирование текстового файла _D_V_S_ Скриптовые языки администрирования Windows 5 20-03-2012 08:02
CMD/BAT - [решено] Разбивка текстового файла файла Seryoga204 Скриптовые языки администрирования Windows 1 04-10-2010 21:19
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28
C/C++ - Открытие текстового файла .::.DIMA.::. Программирование и базы данных 4 05-05-2009 12:17




 
Переход