Автор Тема: Помощь с bat'ником  (Прочитано 5239 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Помощь с bat'ником
« : 29 Январь 2014, 20:27:12 »
Парни, может, кто-нибудь поможет...

Допустим, если написать

echo::>> """File 233.txt"

то в файл File 233.txt запишется два символа ":" в ANSI кодировке и ещё 2 символа - окончания строки (0D 0A в hex). В результате в hex-виде это будет 3A 3A 0D 0A

А можно ли записать таким же макаром в файл сразу hex-коды, например 00 00. Как это задать в батнике? И можно ли убрать эти 2 символа окончания?

Кто разбирается, помогите! Очень нужно...

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #1 : 29 Январь 2014, 20:41:28 »
Guyver(X.B.M.), батник принципиально? под виндой ведь еще есть VBS, для этого решение вот http://forum.script-coding.com/viewtopic.php?pid=30067#p30067  а батники с бинарниками работать не умеют
Хотя вот нагуглил, но как то оч громоздко... http://forum.script-coding.com/viewtopic.php?id=2885
« Последнее редактирование: 29 Январь 2014, 20:50:19 от Skay »

Онлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #2 : 29 Январь 2014, 20:55:19 »
Принципиально именно с батником...

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #3 : 29 Январь 2014, 21:36:32 »
в общем нагуглил я тебе способ) (самому стало интересно)
@echo off

<nul set /p strTemp=Ves etot text>>b.txt
<nul set /p strTemp=budet nahodit'sya>>b.txt
<nul set /p strTemp=na odnoy stroke.>>b.txt
вот так будет без 0D 0A
полностью чтоб писать бинарник исопльзуй предварительно http://metajiji.blogspot.ru/2013/11/hex-to-string-cmd-bat-function.html для конвертации из хекс в стринг )
вот такой костыль получится
напрямую редактировать бинарник - ссылка постом выше.

« Последнее редактирование: 29 Январь 2014, 22:05:52 от Skay »

Оффлайн DeniSS

  • Пользователь
  • Сообщений: 1088
  • Пол: Мужской
  • Сама скрытность
    • ВКонтакте
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #4 : 29 Январь 2014, 21:51:58 »
Слабо представляю себе, можно попробовать разобраться в этом:
https://github.com/FrankWestlake/CMD-scripts/blob/master/hed.cmd

Ещё есть павершелл:

$path = $env:UserProfile + "\Desktop\test.bin";

[Byte[]] $data =
0x48,0x45,0x4c,0x0a,
0x4c,0x4f,0x21;

[System.IO.File]::WriteAllBytes($path, $data);

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat\'ником
« Ответ #5 : 29 Январь 2014, 21:57:31 »
Цитата
Ещё есть павершелл:
увы, сказали принципиально батник)

Добавлено позже:
увы, мой способ не работает. попробовал((
« Последнее редактирование: 29 Январь 2014, 23:06:24 от Skay »

Онлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #6 : 30 Январь 2014, 02:01:46 »
Эх... Жаль, очень жаль... Так хотелось бы с помощью батника. Это так удобно - блокнотом открыл, написал за пару сек, запустил - и не надо никакой среды программирования и т.д.

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #7 : 30 Январь 2014, 02:57:24 »
Идем сюда https://sites.google.com/site/dbenhamfiles/
качаем CharLib_bat.txt, переименовываем в CharLib.bat
читаем справку, либо через блокнот, либо в командной строке набираем charlib help
рядом с этим батником создаем свой, и уже из него вызываем нужные функции, нарпимер
setlocal enableDelayedExpansion
set hex=48656C6C6F576F726C64
call charlib hex2str hex str
<nul >copy.bin set /p ".=!str!"
type copy.bin
48656C6C6F576F726C64 -> HelloWorld
или
call charlib chr 65 myChar
call charlib asc myChar 0 myCode
echo myChar=%myChar%
echo myCode=%myCode%
вообще в библиотечке много интересного)
Но, с функцией hex2str есть проблемки, с ней не записать так в файл 00 (NULL) и еще некоторые - в хэлпе про это написано.
Как вариант можно через опцию заменить на какую то произвольную подстроку, а после этого уже написать отдельную функцию, и ей в файле поправить на нужный символ.
setlocal enableDelayedExpansion
set hex=48656C6C6F00576F726C64
call charlib hex2str hex str
<nul >copy.bin set /p ".=!str!"
type copy.bin
48656C6C6F00576F726C64 -> Hello<NUL>World
setlocal enableDelayedExpansion
set hex=48656C6C6F00576F726C64
call charlib hex2str /NstrTq hex str
<nul >copy.bin set /p ".=!str!"
type copy.bin
48656C6C6F00576F726C64 -> HellostrTqWorld

в общем я хз что ты там собрался кодить так... Но вообще, ни vbs (VisualBasicScript), ни повершелл - не требуют никако среды, это стандартные компоненты винды) при этом куда более функциональные по сравнению с батниками (которые наследие с досовых времен)
на vbs к примеру даже макросы в офисах MS пишутся..
« Последнее редактирование: 30 Январь 2014, 03:06:22 от Skay »

Онлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #8 : 30 Январь 2014, 17:24:48 »
Спасибо! Хоть теперь без 0D0A всё получается. Всё сделал как надо. Только вот бы теперь забить файл символами 00 - вот это пока не получается... Причём без второго батника, а из тела первого, дописав функцию прямо в его начало. Так же можно? Чтобы с двумя батниками не возиться... Простую функцию только для 00, без всех других hex преобразований. Файл именно 00 хотелось бы забить... Пока не выходит, но я не сдаюсь...
« Последнее редактирование: 30 Январь 2014, 17:32:30 от Guyver(X.B.M.) »

Оффлайн GalaxyBot_00

  • Ушел с форума
  • Сообщений: 6042
  • Пол: Мужской
  • Surrender at 20
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #9 : 30 Январь 2014, 17:52:15 »

Оффлайн Skay

  • Пользователь
  • Сообщений: 4120
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #10 : 30 Январь 2014, 18:44:57 »
Guyver(X.B.M.), мое самое первое сообщение в теме, вторая ссыль на батник для редактирования бинарника., смотришь смещение в своей hex строке, переходишь на него,  заменяешь га 00 следующие лишение - удаляешь.
в один файл легко, читай справку про call.

Онлайн Guyver(X.B.M.)

  • Пользователь
  • Сообщений: 2399
  • Пол: Мужской
  • Уничтожим Кронос!
    • Facebook
    • Twitter
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #11 : 30 Январь 2014, 19:48:29 »
спасибо, проглядел первое сообщение твоё невнимательно! ;о)

Оффлайн Leprikon

  • Пользователь
  • Сообщений: 844
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat\'ником
« Ответ #12 : 06 Март 2014, 12:06:12 »
Дабы не засорять форум спрошу здесь. Вобщем мне нужно сделать батник чтобы переименовать папку, запустить ехе а после завершения ехе переименовать папку обратно. Это нужно чтоб поставить 2 несовместимых мода на одну игру.
я сделал так
rename gamedata1 gamedata
Stalker-COP.exe
rename gamedata gamedata1
но почемуто папки не переимновываются.

Добавлено позже:
все я понял в чем дело просто Stalker-COP.exe просто запускает игру а процесс в xrEngine.exe как сделать чтобы батник проверял наличие этого процесса а не шел дальше?
« Последнее редактирование: 06 Март 2014, 13:54:08 от Leprikon »

Оффлайн DeniSS

  • Пользователь
  • Сообщений: 1088
  • Пол: Мужской
  • Сама скрытность
    • ВКонтакте
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #13 : 06 Март 2014, 20:29:05 »
START /WAIT /B Stalker-COP.exeНапример.

Оффлайн Leprikon

  • Пользователь
  • Сообщений: 844
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #14 : 06 Март 2014, 20:48:04 »
START /WAIT /B Stalker-COP.exeНапример.
неа некатит я ж говорю Stalker-COP.exe только запускает игру и отключается а игра это xrEngine.exe поэтому папки сразу переименовываются обратно
если сделать так
rename gamedata1 gamedata
Stalker-COP.exe
xrEngine.exe
rename gamedata gamedata1
то мод работает, но xrEngine.exe запускается 2 раза и его приходится отключать вручную через диспетчер задач! а если напрямую через xrEngine.exe то выыходит ошибка. :neznayu:

Оффлайн DeniSS

  • Пользователь
  • Сообщений: 1088
  • Пол: Мужской
  • Сама скрытность
    • ВКонтакте
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #15 : 06 Март 2014, 20:50:34 »
Тогда
REN gamedata1 gamedata
Stalker-COP.exe
PAUSE
REN gamedata gamedata1
Наигрался, вышел, нажал любую клавишу и готово  :)

Оффлайн Leprikon

  • Пользователь
  • Сообщений: 844
  • Пол: Мужской
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #16 : 06 Март 2014, 20:55:41 »
Тогда
REN gamedata1 gamedata
Stalker-COP.exe
PAUSE
REN gamedata gamedata1
Наигрался, вышел, нажал любую клавишу и готово  :)
ВО то что надо! :jumpy: :thumbup: :gamer:

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4467
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #17 : 09 Март 2014, 15:27:28 »
в общем нагуглил я тебе способ) (самому стало интересно)
Шикарно =)

Оффлайн Photon9

  • Пользователь
  • Сообщений: 10357
  • Пол: Мужской
  • йОжик сОник
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #18 : 29 Сентябрь 2015, 00:05:00 »
Возник небольшой вопросец. Можно ли создать батник который будет запускать желаемую программу в режиме совместимости с требуемой осью и от имени админа? Примером мне надо сделать такой для инсталера игры, чтоб совместимость была с Windows 7 и запуск от админа. Понятно что проще выставить эти параметры в свойствах экзешника, но как показал опыт для некоторых людей сия процедура равна запуску космического корабля :)

Оффлайн cptPauer

  • Пользователь
  • Сообщений: 4178
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #19 : 29 Сентябрь 2015, 03:31:41 »
Вроде бы в Microsoft Compatibility Toolkit можно выставить подобное (и админа, и совместимость). Там куча всего, будет странно, если нету таких базовых вещей. Потои сделать патч совместимости и добавить его батником/инсталлятором в систему, при первой установке игры.
sdbinst.exe -q yourpatch.sdb
Иначе надо будет извращаться типо как тут http://stackoverflow.com/questions/19613846/how-to-add-administrator-rights-in-a-bat-file

Правда, у тебя не получится поменять права файла или добавить патч совместимости, если установщик сам без прав админа.
Но можно проверить есть ли права админа через батник и выдать предупреждение.
 
« Последнее редактирование: 29 Сентябрь 2015, 03:50:17 от cptPauer »

Оффлайн Photon9

  • Пользователь
  • Сообщений: 10357
  • Пол: Мужской
  • йОжик сОник
    • Просмотр профиля
Re: Помощь с bat'ником
« Ответ #20 : 29 Сентябрь 2015, 11:29:48 »
Прав нету 100%, проблема в том что это не у меня, человек качнул несколько пираток в инете в виде репаков пережатых из последних сил, в итоге почему то под 8 при распаковке ресурсов unarc крешится, хотя в более новых репаках сей проблемы нет, запуск же в режиме совместимости с 7 и от админа сей баг убирает. Я конечно на сей раз обяснил ему что к чему, просто на другой раз с батником было проще бы, ведь большая часть игр имеют имя экзешника в инсталере setup.exe. Но коли это проблематично, то ничего не поделаешь, придётся опять разжёвывать  :neznayu: