Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Бат на удаление - вставление текста (http://forum.oszone.net/showthread.php?t=285907)

Hancog 01-08-2014 22:28 2384266

Бат на удаление - вставление текста
 
\del

Iska 01-08-2014 23:09 2384282

См.: CMD/BAT - [решено] bat файл, при запуске которого в файле .cfg стирался весь текст и вставлялся новый.

Hancog 02-08-2014 08:41 2384365

\del

Iska 02-08-2014 13:14 2384403

Цитата:

Цитата Hancog
подскажите что не так »

Возможно, кодировка. В оригинале она — UTF-8. Полагаю, Вам проще будет создать файл-образец «Preferences» и просто копировать его поверх существующего. Возможно, Вы где-то ошиблись в количестве открывающих/закрывающих тэгов в JSON.

Hancog 02-08-2014 13:16 2384406

\del

Hancog 02-08-2014 13:33 2384414

\del

Iska 02-08-2014 14:06 2384423

Для XP:
Код:

copy /y "Local State" "%UserProfile%\Local Settings\Application Data\Google\Chrome\User Data\Local State"
copy /y "Preferences" "%UserProfile%\Local Settings\Application Data\Google\Chrome\User Data\Default\Preferences"

В Windows 7 путь к конечным файлам будет иной, смотрите сами.

Hancog 02-08-2014 16:06 2384467

\del

Iska 02-08-2014 16:52 2384475

Цитата:

Цитата Hancog
Спасибо еще раз,у меня все таки получилось с заменой текста, »

Ровно до тех пор, пока в Ваших файлах отсутствует кириллица.

Цитата:

Цитата Hancog
как в 1 батник записать изменении текста в двух файлах в такой форме »

Именно в такой форме — никак.

P.S. Освойте тэг [code].

Hancog 02-08-2014 20:19 2384523

\del

Iska 02-08-2014 22:32 2384547

Цитата:

Цитата Hancog
кирилицы нету »

Да ну?! Ладно, я допускаю, что у Вас пользователь имеет латинское имя. А что у Вас в «\profile\name», в «\ntp\app_page_names», в «\ntp\promo_line»?

Georgio 03-08-2014 09:04 2384612

Цитата:

Цитата Hancog
да мне больше в принципе не чего не надо,разобраться как 2 в 1 сделать и все »





Разбирайтесь:



Код:

@echo off
setlocal enableextensions enabledelayedexpansion
<"%~f0" (for %%i in (.) do call:sub)
exit /b

:sub
 setlocal enableextensions enabledelayedexpansion
 :sub.1
  (
  set "line="
  set /p "line="
  if not "!line!"==":::::::::::::::::::::::::::::::::::::" goto %0.1
  )
  copy nul "some file 1.cfg">nul
 :sub.2
  (
  set "line="
  set /p "line="
  if not "!line!"=="#####################################" (echo.!line!& goto %0.2)
  )>>"some file 1.cfg"
  copy nul "some file 2.cfg">nul
 :sub.3
  (
  set "line="
  set /p "line="
  if "!line!"=="*************************************" goto %0.4
  echo.!line!
  goto %0.3
  )>>"some file 2.cfg"
 :sub.4
  endlocal
  exit /b


:::::::::::::::::::::::::::::::::::::
Здесь
расположен
Ваш первый текст!
#####################################
Здесь
расположен
Ваш второй текст!
*************************************



.

Hancog 16-08-2014 19:30 2390175

Цитата:

Цитата Georgio
Разбирайтесь: »

Подскажите пожалуйста как сделать 9 файлов? и как указать путь к файлам,а не что бы в той папке где батник было

Hancog 16-08-2014 22:10 2390210

ап тему

Georgio 17-08-2014 13:30 2390364

Код:

@echo off
set quantity=9
for %%i in (
 "D:\Work\82\1.txt"
 "D:\Work\82\2.txt"
 "D:\Work\82\3.txt"
 "D:\Work\82\4.txt"
 "D:\Work\82\5.txt"
 "D:\Work\82\6.txt"
 "D:\Work\82\7.txt"
 "D:\Work\82\8.txt"
 "D:\Work\82\9.txt"

 ) do (
 for /f %%j in ('
  set /a quantity+12
 ') do (
  <"%~f0">%%i more +%%j
  )
 )
exit /b
####################
Здесь (начиная со слова "Здесь")
расположен
Ваш текст!


Hancog 17-08-2014 13:34 2390367

У меня в 9 файлах разный текст,как сделать что бы во всех файлах был нужный текст

Georgio 17-08-2014 16:16 2390417

Цитата:

Цитата Hancog
У меня в 9 файлах разный текст,как сделать что бы во всех файлах был нужный текст »


Код:

@echo off
goto:#

#####################################
Здесь
расположен
Ваш 1-ый текст!
#####################################
Здесь
расположен
Ваш 2-ой текст!
#####################################
Здесь
расположен
Ваш 3-ий текст!
#####################################
Здесь
расположен
Ваш 4-ый текст!
#####################################
Здесь
расположен
Ваш 5-ый текст!
#####################################
Здесь
расположен
Ваш 6-ой текст!
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################

:#
set quantity=9
for %%i in (
 "D:\Work\79\1.txt"
 "D:\Work\79\2.txt"
 "D:\Work\79\3.txt"
 "D:\Work\79\4.txt"
 "D:\Work\79\5.txt"
 "D:\Work\79\6.txt"
 "D:\Work\79\7.txt"
 "D:\Work\79\8.txt"
 "D:\Work\79\9.txt"

 ) do (
 set /a count+=1
 call set %%count%%=%%i
 )

for /l %%i in (1 1 %quantity%) do (
 set /p="WScript.Echo(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0").ReadAll(), vbCrLf&"#####################################"&vbCrLf)(%%i))"<nul>.vbs
 for /f %%j in ('
  call echo %%%%i%%
 ') do (
  cscript //nologo .vbs| clip
  for /l %%i in (1 1 5000) do (
  pause<nul>nul
  )
  mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()">%%j
  )
 )
del .vbs

exit /b


Hancog 17-08-2014 21:14 2390520

Спасибо

Hancog 18-08-2014 12:49 2390709

Еще спросить хотел,не получается сохранить файлы где переменные пути т.е к примеру в %appdata%
Просто я так понял что он создает отдельный vbs и через него уже записует,а в нем не поддержуется такой вид пути,точнее подерживается но по другомы выглядит,поэтому подскажите пожалуйста

Iska 18-08-2014 14:02 2390741

Hancog, Вы сейчас о чём? Ваш вопрос как-то связан с данной темой?

Hancog 18-08-2014 14:31 2390748

Да приблизительно,в той теме я писал насчет vbs на скачивыание картинки и сохранение ее в appdata,а здесь насчет создания текстовых файлов из батника,только вот когда я вписываю путь сохранение сюда
:#
set quantity=9
for %%i in (
"%appdata%\file.txt
"D:\Work\79\2.txt"
"D:\Work\79\3.txt"
"D:\Work\79\4.txt"
"D:\Work\79\5.txt"
"D:\Work\79\6.txt"
"D:\Work\79\7.txt"
"D:\Work\79\8.txt"
"D:\Work\79\9.txt"

То файл не сохраняется,с той темой связанно тем что,в vbs как я понял путь переменный записываются как то по другому,вы там мне помогли поставить что бы сохранялась картинка,а тут я еще не разобрался

Iska 18-08-2014 14:33 2390751

Цитата:

Цитата Hancog
только вот когда я вписываю путь сохранение сюда
:#
set quantity=9
for %%i in (
"%appdata%\\file.txt »

Код:

"%appdata%\file.txt"

Hancog 18-08-2014 14:35 2390753

нет я же отредактировал,это когда я сюда писал ошибся,а так всегда с одной \ пишу,не выходит

Iska 18-08-2014 14:45 2390762

Цитата:

Цитата Hancog
нет я же отредактировал,это когда я сюда писал ошибся,а так всегда с одной \ пишу,не выходит »

А завершающую кавычку, выделенную мною красным цветом?

Hancog 18-08-2014 15:04 2390774

Все понял,затупил сильно,заработало,только вот если есть подпапка %appdata%\Low Games
То в нее не хочет сохранять,ну если название через пробел будет,что в данном случае сделать?

Iska 18-08-2014 15:34 2390794

Цитата:

Цитата Hancog
только вот если есть подпапка %appdata%\Low Games
То в нее не хочет сохранять »

Уверены, проверяли (я — не проверял)?

Hancog 18-08-2014 15:37 2390797

Цитата:

Цитата Iska
Уверены, проверяли (я — не проверял)? »

Да проверял все точно,в те которые слитно сохраняет,там где через пробел имя не сохраняет,100%,несколько раз проверил

Можете сами проверить

Georgio 18-08-2014 16:00 2390809

Код:

@echo off
goto:#

#####################################
Здесь
расположен
Ваш 1-ый текст!
#####################################
Здесь
расположен
Ваш 2-ой текст!
#####################################
Здесь
расположен
Ваш 3-ий текст!
#####################################
Здесь
расположен
Ваш 4-ый текст!
#####################################
Здесь
расположен
Ваш 5-ый текст!
#####################################
Здесь
расположен
Ваш 6-ой текст!
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################

:#
set quantity=9
for %%i in (
 "D:\Work\87\~ ~\1.txt"
 "D:\Work\87\~ ~\2.txt"
 "D:\Work\87\~ ~\3.txt"
 "D:\Work\87\~ ~\4.txt"
 "D:\Work\87\~ ~\5.txt"
 "D:\Work\87\~ ~\6.txt"
 "D:\Work\87\~ ~\7.txt"
 "D:\Work\87\~ ~\8.txt"
 "D:\Work\87\~ ~\9.txt"
 ) do (
 set /a count+=1
 call set %%count%%=%%i
 )

for /l %%i in (1 1 %quantity%) do (
 set /p="WScript.Echo(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0").ReadAll(), vbCrLf&"#####################################"&vbCrLf)(%%i))"<nul>.vbs
 for /f "delims=" %%j in ('
  call echo %%%%i%%
 ') do (
  cscript //nologo .vbs| clip
  for /l %%i in (1 1 5000) do (
  pause<nul>nul
  )
  mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(ClipboardData.GetData("text"))&Close()">%%j
  )
 )
del .vbs

exit /b


Hancog 18-08-2014 16:36 2390834

"%appdata%\~Low Games~\1.txt" пишу все равно не получается

Iska 18-08-2014 16:40 2390836

Папка у Вас зовётся именно «~Low Games~», вот именно так — с тильдами? Она существует?

Hancog 18-08-2014 16:44 2390839

\del

Hancog 18-08-2014 23:19 2390978

\del

Iska 19-08-2014 00:37 2391005

Hancog, не очень понятно. А решение и вовсе выбрано неудачно.

Для начала приведите Ваш код.

Hancog 19-08-2014 00:37 2391007

\del

Iska 19-08-2014 10:14 2391113

Цитата:

Цитата Hancog
Файл который впереди это ярлык игры,не знаю в какой он кодировке, »

В двоичной. И пытаться работать с ним, как с текстом — не нужно. Используйте обычным отдельный файл ярлыка. А лучше вообще переходите на WSH/PoSH и просто создавайте его (ярлык).

Hancog 19-08-2014 12:17 2391170

\del

Iska 19-08-2014 12:59 2391180

Цитата:

Цитата Hancog
Я все пытался,я не работаю как с текстом я вот беру открываю блокнотом вставляю то что нужно вниз »

Hancog, Вы как раз таки работаете с двоичным файлом как с текстом. И это — неправильный подход.

Цитата:

Цитата Hancog
Через WSH можно создать ярлык и засунуть в него bat файл? »

Объясните, что означает: «и засунуть в него bat файл» и, главное, зачем.

Hancog 19-08-2014 13:15 2391193

\del

Iska 19-08-2014 14:05 2391227

Hancog, освойте комбинацию «Alt-PrintScreen».

Цитата:

Цитата Hancog
могу кинуть вам то что получилось,то что он будет запускатся,но криво и отображатся как ярлык то же будет »

Я Вам выше озвучил, что нужно делать.

Hancog 19-08-2014 14:07 2391229

\del

Iska 19-08-2014 14:17 2391243

Цитата:

Цитата Hancog
меня не устраивает мне нужно все в одном »

Цитата:

Цитата Iska
переходите на WSH/PoSH и просто создавайте его (ярлык). »


Hancog 19-08-2014 14:35 2391251

\del

Iska 19-08-2014 14:47 2391258

CreateShortcut Method
How to create a desktop shortcut with the Windows Script Host
Сценарий Create shortcut in your desktop

Hancog 19-08-2014 14:52 2391263

\del

Iska 19-08-2014 15:46 2391292

Цитата:

Цитата Hancog
а где тут текст что бы можно было всунуть »

Какой текст, и куда «всунуть»?

Hancog 19-08-2014 15:56 2391301

\del

Iska 19-08-2014 16:26 2391326

Hancog, работать с матрёшками из пакетных файлов, WSH, HTA и бинарного кода, «всунутого» как текст — это уже без меня.

Hancog 19-08-2014 16:30 2391329

\del

Iska 19-08-2014 16:39 2391337

Невозможно дать корректный ответ на некорректно поставленный вопрос.

Hancog 19-08-2014 17:10 2391351

\del

Hancog 19-08-2014 22:04 2391489

Цитата:

Цитата Iska
Невозможно дать корректный ответ на некорректно поставленный вопрос. »

По моему выше дал конкретнее некуда ))

Hancog 21-08-2014 19:36 2392400

Цитата:

Цитата Georgio
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################
:#
set quantity=9
for %%i in (
"D:\Work\87\~ ~\1.txt"
"D:\Work\87\~ ~\2.txt"
"D:\Work\87\~ ~\3.txt"
"D:\Work\87\~ ~\4.txt"
"D:\Work\87\~ ~\5.txt"
"D:\Work\87\~ ~\6.txt"
"D:\Work\87\~ ~\7.txt"
"D:\Work\87\~ ~\8.txt"
"D:\Work\87\~ ~\9.txt"
) do (
set /a count+=1
call set %%count%%=%%i
)
for /l %%i in (1 1 %quantity%) do (
set /p="WScript.Echo(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0").ReadA ll(), vbCrLf&"#####################################"&vbCrLf)(%%i))"<nul>.vbs
for /f "delims=" %%j in ('
call echo %%%%i%%
') do ( »


Georgio Еще спросить хотел можно ли добавить к всем файлам их запуск после создания,т.е что бы вот файл создался и сразу запустился,не для всех файлов нужен запуск,просто если к примеру я после всего bat пишу "D:\Work\87\~ ~\1.txt файл открывается,но только после того как все остальные создадутся,а нужно сразу

Georgio 21-08-2014 22:00 2392478

Цитата:

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

Код:

@echo off
goto:#

#####################################
Здесь
расположен
Ваш 1-ый текст!
#####################################
Здесь
расположен
Ваш 2-ой текст!
#####################################
Здесь
расположен
Ваш 3-ий текст!
#####################################
Здесь
расположен
Ваш 4-ый текст!
#####################################
Здесь
расположен
Ваш 5-ый текст!
#####################################
Здесь
расположен
Ваш 6-ой текст!
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################

:#
set quantity=9
for %%i in (
 "D:\Work\109\1.txt/start"
 "D:\Work\109\2.txt"
 "D:\Work\109\3.txt"
 "D:\Work\109\4.txt"
 "D:\Work\109\5.txt/start"
 "D:\Work\109\6.txt"
 "D:\Work\109\7.txt"
 "D:\Work\109\8.txt"
 "D:\Work\109\9.txt/start"
 ) do (
 set /a count+=1
 call set %%count%%=%%i
 )

for /l %%i in (1 1 %quantity%) do (
 set /p="WScript.StdOut.Write(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0").ReadAll(), vbCrLf&"#####################################"&vbCrLf)(%%i))"<nul>.vbs
 for /f "tokens=1,2 delims=/" %%j in ('
 "call set /p=%%%%i%%<nul"
 ') do (
  cscript //nologo .vbs>"%%j"
  if not "%%k"=="" (
  start "" notepad "%%j"
  )
  )
 )
del .vbs

exit /b


Hancog 21-08-2014 22:28 2392489

Цитата:

Цитата Georgio
@echo off
goto:#
#####################################
Здесь
расположен
Ваш 1-ый текст!
#####################################
Здесь
расположен
Ваш 2-ой текст!
#####################################
Здесь
расположен
Ваш 3-ий текст!
#####################################
Здесь
расположен
Ваш 4-ый текст!
#####################################
Здесь
расположен
Ваш 5-ый текст!
#####################################
Здесь
расположен
Ваш 6-ой текст!
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################
:#
set quantity=9
for %%i in (
"D:\Work\109\1.txt/start"
"D:\Work\109\2.txt"
"D:\Work\109\3.txt"
"D:\Work\109\4.txt"
"D:\Work\109\5.txt/start"
"D:\Work\109\6.txt"
"D:\Work\109\7.txt"
"D:\Work\109\8.txt"
"D:\Work\109\9.txt/start"
) do (
set /a count+=1
call set %%count%%=%%i
)
for /l %%i in (1 1 %quantity%) do (
set /p="WScript.StdOut.Write(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0 ").ReadAll(), vbCrLf&"#####################################"&vbCrLf)(%%i))"<nul>.vbs
for /f "tokens=1,2 delims=/" %%j in ('
"call set /p=%%%%i%%<nul"
') do (
cscript //nologo .vbs>"%%j"
if not "%%k"=="" (
start "" notepad "%%j"
)
)
)
del .vbs
exit /b »

А как сделать что бы он открывался чем стоит в системе,к примеру вот у меня первый текст (файл) это .wsh скрипт,а он открывается как текстовой документ

Georgio 22-08-2014 01:06 2392535

Цитата:

Цитата Hancog
А как сделать что бы он открывался чем стоит в системе »



Код:

@echo off
goto:#


#####################################
Здесь
расположен
Ваш 1-ый текст!
#####################################
Здесь
расположен
Ваш 2-ой текст!
#####################################
Здесь
расположен
Ваш 3-ий текст!
#####################################
Здесь
расположен
Ваш 4-ый текст!
#####################################
Здесь
расположен
Ваш 5-ый текст!
#####################################
Здесь
расположен
Ваш 6-ой текст!
#####################################
Здесь
расположен
Ваш 7-ой текст!
#####################################
Здесь
расположен
Ваш 8-ой текст!
#####################################
Здесь
расположен
Ваш 9-ый текст!
#####################################


:#

for %%i in (
 "D:\Work\110\1.txt/start"
 "D:\Work\110\2.txt"
 "D:\Work\110\3.txt"
 "D:\Work\110\4.txt"
 "D:\Work\110\5.txt/start"
 "D:\Work\110\6.txt"
 "D:\Work\110\7.txt"
 "D:\Work\110\8.txt"
 "D:\Work\110\9.txt/start"
 ) do (
 set /a count+=1
 call set %%count%%=%%i
 )

for /f %%i in ('
"findstr /x ##################################### "%~fs0"| find /c /v """
') do (
 for /f %%j in ('
  set /a %%i-1
 ') do (
  for /l %%k in (1 1 %%j) do (
  set /p="WScript.StdOut.Write(Split(WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile("%~fs0").ReadAll(), vbCrLf&"#####################################"&vbCrLf)(%%k))"<nul>.vbs
  for /f "tokens=1,2 delims=/" %%l in ('
  "call set /p=%%%%k%%<nul"
  ') do (
    rem "if defined %%k" is not the mistake.
    if defined %%k (
    cscript //nologo .vbs>"%%l"
    )
    if "%%m"=="start" (
    start "" "%%l"
    )
    )
  )
  )
 )
del .vbs

exit /b


Hancog 22-08-2014 16:02 2392751

Последние извиняюсь что каждый раз тревожу,а как сделать так что если путь к примеру D:\Work\110\1.txt нету он сам создавал,ну т.е папки что бы сами создавались,что бы их не нужно было вручную создавать
И да еще что бы он запускался с любой папки,просто к примеру если сам bat лежит не в деректории D:\Work\110 ,а на рабочем столе,и его запустить не чего не произойдет,все работает только если батник в той дирректории где нужно


Время: 11:44.

Время: 11:44.
© OSzone.net 2001-