Wake of Gods Forum | Форум Во Имя Богов
BAT-файлы - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Общие Форумы (/forumdisplay.php?fid=100)
+--- Forum: Софт и железо (/forumdisplay.php?fid=137)
+--- Thread: BAT-файлы (/showthread.php?tid=1052)


BAT-файлы - aLLigator - 01.02.2010 19:35

Немного предыстории..
Столкнулся с небольшой проблемкой, что на флешке отформатированной exFAT при любом неверном телодвижении вроде выдергивания без отключения или даже просто пропадение питания на ЮСБ порте весь том становится "риадонли" и вывести его из этого состояния может только форматирование либо сканирование скандиском с определенным ключем.
Теперь сама суть..
Решил для простоты и удобства сделать батничек запускающий проверочку с нужным ключем в случае такого трабла.
Получилось нечто вроде этого:
CHKDSK %~d0 /F
exit

%~d0 вместо статической буквы был взят для того,чтобы метод был универсальным и запускаемым на других машинах где флешке будет выдана другая буква диска.

Но в результате скандиск нехочет производить проверку диска по причине что с него запущен этот самый батник.мол пока он не отработает кина не будет!!

Поиск в тырнете дал совет использовать вызов команды через start с ключем /nowait, но самое интересное что такой ключ не предусмотрен и при попытке запуска пишет что он неверный.

Может у кого будут какие идеи как запустить проверку определенного тома с автоматическим определением буквы и при этом чтобы запущенный процесс не держал устройство от такой проверки??


Пы.Сы. Просьба переход на ФАТ32 или НТФС не предлагать! с ними ещё больше проблемм..


RE: BAT-файлы - gamecreator - 01.02.2010 20:04

эта проблема на одном компьютере? если да, то в настройках флешки можно попробовать поставить оптимизацию на быстрое извлечение


RE: BAT-файлы - aLLigator - 01.02.2010 20:12

это замануха exFAT!! хотя возникает пожалуй только на ХР.. на Висте и Семерке по другому реализовано отключение и пока ещё такого трабла у меня не возникало.


RE: BAT-файлы - gamecreator - 01.02.2010 20:34

попробуй /X


RE: BAT-файлы - Dj_Kolan - 02.02.2010 01:26

Я думаю, что у тебя просто глючит файловая система. Дело в том, что виндовое форматирование не полностью стирает/записывает всё с флэшки... Тебе флэху сначала надо забить нулями, а потом снова отформатировать. И, кстати, с FAT32 у меня на флэхе проблем никаких нету.


RE: BAT-файлы - aLLigator - 02.02.2010 01:52

(01.02.2010 20:34)gamecreator Wrote:  попробуй /X
в принципе оно то же самое и предлагает когда неможет получить полный доступ что и дает ключ "Х"... но это всеравно не помогает!

(02.02.2010 01:26)Dj_Kolan Wrote:  Я думаю, что у тебя просто глючит файловая система.

это не глюк, а фишка специально сделанная мелкософтом... типа чтобы не потерять данные от случайного перезаписывания поверх - недает ничего сделать с томом до его проверки скандиском.

(02.02.2010 01:26)Dj_Kolan Wrote:  И, кстати, с FAT32 у меня на флэхе проблем никаких нету.
Bad не поддерживает файлы более 4 гигов.. а иногда ХДТВшки на ней переносить приходится. К тому же именно с этой флехой вылазит глюк что при копировании на флешку в Тотале не показывает процент выполнеия.. с чем связано незнаю, но перепробовав ФАТ32, НТФС с разным размером кластера остановился на эксФАТ! если бы не замануха с "риадонли" идеальный вариант как для меня!

Bad В общем я так понял никто не в курсе как закрыть выполняемый батник..


RE: BAT-файлы - gamecreator - 02.02.2010 02:24

работает такое:

autorun.bat Wrote:copy /Y additional.bat c:\temp\additional.bat
start c:\temp\additional.bat

additional.bat Wrote:;user code
del /Q c:\temp\additional.bat
exit



RE: BAT-файлы - aLLigator - 02.02.2010 03:07

Sm не спорю что перенос на хард работает.. но как тогда определять букву диска для проверяего устройства?


RE: BAT-файлы - Bourn - 02.02.2010 04:09

в чем проблема то?)
echo CHKDSK %~d0 /F > c:\temp\additional.bat
start c:\temp\additional.bat

хотя правильнее юзать будет подстановку %TEMP%


RE: BAT-файлы - aLLigator - 02.02.2010 14:37

Bad то же самое получается... даже поставил ключ /i к старту чтобы в новом окне запускало - та же фигня!

Image: 28ahuu0.gif


RE: BAT-файлы - Bourn - 02.02.2010 14:44

а как на счет
echo C: > %TEMP%\additional.bat
echo CHKDSK %~d0 /F /X >> %TEMP%\additional.bat
start %TEMP%\additional.bat

или вообще:
echo C: > %TEMP%\additional.bat
echo start CHKDSK %~d0 /F >> %TEMP%\additional.bat
start %TEMP%\additional.bat


RE: BAT-файлы - aLLigator - 02.02.2010 17:13

ВОТ!! Оргомнейшее спасибо!


RE: BAT-файлы - Dj_Kolan - 02.02.2010 23:37

Ген, а ты этот скрипт хочешь в авторан на флэшку посадить? Или просто заходить на флэшку и запускать его?
Добавлено:
Я просто, так подумал, что автозапуск флэшек люди отключают обычно, чтоб флэшечные вири не запускались...


RE: BAT-файлы - gamecreator - 03.02.2010 02:07

а какая разница если он ручками его запустит или автораном?


RE: BAT-файлы - aLLigator - 03.02.2010 17:02

не.. авторан тут уже будет лишним! тем более что я эту функцию вообще отключил и вдобавок на вякий случай прописал удаление autorun.inf для любого подсоединяемого устройства..


RE: BAT-файлы - aLLigator - 03.02.2010 23:04

Sm задачка нумеро дуос!

Можно как-то с помощью батника сэмуировать нажатие клавиш fn+F3??

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


RE: BAT-файлы - gamecreator - 04.02.2010 01:38

глянь в биосе настройки. а вообще драйвер сам должен запоминать состояние блютуса (у меня на ноуте запоминает)


RE: BAT-файлы - aLLigator - 04.02.2010 02:40

биос дает поменять от силы 6-7 пунктов.. состояние тоже не запоминается!


RE: BAT-файлы - gamecreator - 04.02.2010 02:49

можно прогу написать которая посылала бы эту комбинацию рабочему столу.


RE: BAT-файлы - aLLigator - 04.02.2010 02:55

Bad блин.. только что проверил что эта комбинация не катит! а нажатие софтовой клавиши фиг знает как поймать..


RE: BAT-файлы - Dj_Kolan - 04.02.2010 12:23

Ох уж эти ноутбуки... По мне, дак с ними одно мучение...
Тут вот вчера на сони вайо ставил вин7 вмето висты... Горя хапнул немеряно. Но это уже для другой темы разговор.


RE: BAT-файлы - gamecreator - 04.02.2010 14:56

(04.02.2010 02:55)aLLigator Wrote:  эта комбинация не катит!
а какая катит?


RE: BAT-файлы - aLLigator - 04.02.2010 16:04

(04.02.2010 14:56)gamecreator Wrote:  
(04.02.2010 02:55)aLLigator Wrote:  эта комбинация не катит!
а какая катит?
Sm софтовая кнопка катит!
Bad как перехватить её значение без понятия..


RE: BAT-файлы - gamecreator - 04.02.2010 19:28

всмысле софтовая кнопка? та, что отдельно от клавы?


RE: BAT-файлы - aLLigator - 04.02.2010 19:43

(04.02.2010 19:28)gamecreator Wrote:  всмысле софтовая кнопка? та, что отдельно от клавы?
Bad ага..


RE: BAT-файлы - Dj_Kolan - 04.02.2010 20:36

(03.02.2010 23:04)aLLigator Wrote:  и хотелось чтобы встроенный блютус сам включался при запуске системы, а не надо было каждый раз давить софтовую кнопку.
Ген, а в виде чего этот встроенный блютус запускается? В виде службы/процесса, в виде приложения, или как?


RE: BAT-файлы - aLLigator - 05.02.2010 00:00

(04.02.2010 20:36)Dj_Kolan Wrote:  
(03.02.2010 23:04)aLLigator Wrote:  и хотелось чтобы встроенный блютус сам включался при запуске системы, а не надо было каждый раз давить софтовую кнопку.
Ген, а в виде чего этот встроенный блютус запускается? В виде службы/процесса, в виде приложения, или как?
скорее всего в виде приложения.. хотя может какие службы при это и задействуются (не проверял). При включении появляется обычная иконка в панели задач да и все...


RE: BAT-файлы - Dj_Kolan - 05.02.2010 22:42

Может тогда просто добавить в автозапуск это приложение?


RE: BAT-файлы - gamecreator - 05.02.2010 23:07

вообще-то оно автоматически должно запускаться при старте системы.


RE: BAT-файлы - aLLigator - 06.02.2010 01:27

Bad изначально и стоит в автозагрузке!


RE: BAT-файлы - Dj_Kolan - 06.02.2010 21:37

Может тогда в строчку автозагрузки добавить ключик какой-нить? Документация или справка есть по этому приложению?


RE: BAT-файлы - aLLigator - 06.02.2010 23:20

так в том то и дело что нету возможности програмно его включить.. соответственно откуда ключику на это дело взяться?


RE: BAT-файлы - Efrit - 22.02.2011 22:29

Кто-нибудь знает, как в XP запустить приложение с определённым приоритетом? Имеется в виду "приоритет процесса", который можно поменять в Диспетчере задач. Везде пишут про создание определённых батников... Я и создаю такой батник - но он почему-то работает лишь для приложений, которые находятся где-то на диске C:, для диска D: же он не срабатывает - просто висит окон командной строки и всё...


RE: BAT-файлы - etoprostoya - 22.02.2011 22:41

Покажи пример.


RE: BAT-файлы - Efrit - 23.02.2011 00:02

Если я прописываю внутрь батника
start /low c:\windows\notepad.exe
- то Блокнот и впрямь открывается с низким приоритетом.

Однако если я копирую его экзешник в корень диска D:, а содержимое батника меняю на
start /low d:\notepad.exe
- то Блокнот почему-то стартует с обычным приоритетом...


RE: BAT-файлы - etoprostoya - 23.02.2011 02:02

У меня в обоих случаях низкий приоритет.


RE: BAT-файлы - Efrit - 23.02.2011 02:23

А у меня нет... Мда, какие-то глюки. В чём же причина? 105


RE: BAT-файлы - gamecreator - 23.02.2011 03:56

у меня тоже все ок. мб не хватает прав?


RE: BAT-файлы - Deo - 24.02.2011 19:30

Efrit, попробуй так (-:



RE: BAT-файлы - Corwin - 24.02.2011 19:59

Quote:мб не хватает прав?
Да-да, Эфрит, ты не имеешь права так поступать!
Я буду жаловаться, я директор музея!


RE: BAT-файлы - Efrit - 24.02.2011 21:04

Deo, а это что за язык такой? В какой среде компилить нужно?

Corwin, а тихонько, скрытно... Никто и не узнает Spiteful


RE: BAT-файлы - Deo - 24.02.2011 21:05

Efrit, Assembler (MASM32).


RE: BAT-файлы - Efrit - 24.02.2011 23:54

А да, точно, пригляделся повнимательнее Sm Попробую...


RE: BAT-файлы - izrukvruki - 02.12.2013 17:16

не подскажите... можно ли написать батник, который копировал бы следующие папки (с подпапками и файлами) и файлы с заменой старых файлов на новые, если таковые имеются...
Image: 8ef8e98cfdbe.jpg


RE: BAT-файлы - Algor - 02.12.2013 19:16

Для каталогов xcopy, если трудность с этим.


RE: BAT-файлы - izrukvruki - 03.12.2013 10:31

вот так вроде робит...
Code:
xcopy "G:\design\act\pdf\nt\*.*" "D:\pdf\nt\*.*" /E /F /D /Y
xcopy "G:\design\act\pdf\vv\*.*" "D:\pdf\vv\*.*" /E /F /D /Y
xcopy "G:\design\act\pdf\*.pdf" "D:\pdf\*.*" /F /D /Y



RE: BAT-файлы - WWWoWaNuS - 25.12.2013 14:55

Пригодится для особо ленивых лазать по папкам игры и установивших Era. Предлагается следующий батник:
Code:
explorer .\%1
Пихается в папку с игрой, даёт возможность открывать подпапки игры через Era Start Menu. В параметре указываем требуемую подпапку..
Ну не нашёл я способа это через Era Start Menu проще сделать..Dash1


RE: BAT-файлы - gamecreator - 25.12.2013 17:00

Поправочка:
Code:
explorer %~dp0\%1
Так универсальнее и надёжней. Рабочая папка всё же может не оправдать ожиданий.

Правильная версия без косой черты:
Code:
explorer %~dp0%1



RE: BAT-файлы - WWWoWaNuS - 25.12.2013 17:19

(25.12.2013 17:00)gamecreator Wrote:  Поправочка:
Code:
explorer %~dp0\%1
Так универсальнее и надёжней. Рабочая папка всё же может не оправдать ожиданий.
Там не участвует рабочая папка, напрямую из ESM explorer не вызывается..
Image: file.html
В случае
Code:
explorer .\%1
я получаю папку модов, в твоём случае - папку "Мои документы".

Проверял на ОС Win2008R2ES(x64)


RE: BAT-файлы - gamecreator - 25.12.2013 18:16

Не может быть в моём случае "Мои документы". Там указан прямо путь в папку с файлом скрипта (%~dp0).
(25.12.2013 17:19)WWWoWaNuS Wrote:  Там не участвует рабочая папка
Она участвует когда ты в скрипте пытаешься обратиться по относительному пути к папке модов.
(25.12.2013 17:19)WWWoWaNuS Wrote:  напрямую из ESM explorer не вызывается..
Даже через %windir%\explorer.exe не вызывается? В качестве Path to file указать имя папки тоже не работает?

Ой, в моём скрипте ошибка. Косая черта не нужна оказывается. Может потому и такой странный результат у тебя. Хотя обычно если путь не существует, то вылезает окно с ошибкой.


RE: BAT-файлы - WWWoWaNuS - 25.12.2013 18:42

(25.12.2013 18:16)gamecreator Wrote:  Даже через %windir%\explorer.exe не вызывается?
Не хочется лишних переменных пихать, а то под Wine ещё менее вероятно сработает..
И - да, пробовал в ESM вписать %windir%\explorer.exe - не запускается.. (да и не надо☻)


RE: BAT-файлы - gamecreator - 25.12.2013 18:49

Разве под Wine bat-скрипты работают?


RE: BAT-файлы - Berserker - 25.12.2013 19:26

Era Start Menu позволяет просто указать путь к папке.
D:\Архив\Старый диск\C\SoD

Иконка будет та же, что и у папки. Открываться будет проводник.


RE: BAT-файлы - WWWoWaNuS - 25.12.2013 19:38

Команда "wine cmd" работает определённо.
И батники выполняются.. ☻
Видео для извра.. т.е. ознакомления. ☺☺

Berserker, ИМХО, нужны относительные пути - меньше гемора при создании установки или переносе. Но за инфо спасибо - попробую..


RE: BAT-файлы - Berserker - 25.12.2013 21:52

Я просто пример привёл. Работает и .\..

WWWoWaNuS, у тебя Эра под вайном работает?


RE: BAT-файлы - WWWoWaNuS - 25.12.2013 22:39

(25.12.2013 21:52)Berserker Wrote:  WWWoWaNuS, у тебя Эра под вайном работает?
Из-под никсов пока не тестил, если не заленит меня слишком - проверю, расскажу.
Хочется ориентироваться всё же на максимум доступных платформ (почему параллельно гляжу и за VCMI немного).
Эх, жалко, не начал никто пока "моды-универсалы" писать (хотя, думаю, возможно - ресурсы одни и те же, только механика разная. Какой-нибудь город, например..)
(25.12.2013 21:52)Berserker Wrote:  Работает и .\..
О, спасибо!

Upd.: WoG/Era не завелись, а вот MoP2:RtL завёлся нормально - видимо, в нём нет низкоуровневого перехвата и/или самоизменения кода в процессе работы - кусочная эмуляция это нормально отработать не позволит (тем более, при хуках на уровнях регистров, тут и не каждая полноценная ВМ справится). Правда, особо его не мучал - ПК на nix не совсем мой..
Тестил на Debian 7.2.0 i386 Full (Wine там есть в комплекте), никаких доп. заплаток на него предварительно не ставил.
Upd.2:HD-mod, соответственно, не работает - просто вызывает другой exe и передаёт ему права.
P.S.: Если в WoG 3.59 всё будет перевешено на высокоуровневую обработку, то - будем жить. ☻


RE: Мод "Master of puppets" - fireman - 15.09.2016 00:49

Перенесено отсюда

---------------------

В дополнение к gamecreator'у: не стоит бездумно заменять %cd% на %~dp0 в своих скриптах. Последняя даёт путь со слэшем на конце в отличии от первой, поэтому нужно ещё немного магии:
Code:
set mypath=%~dp0
set mypath=%mypath:~,-2%
Теперь намного вероятнее, что не будет проблем из-за запуска под админом. Но могут и быть. Всегда стоит проверять скрипты на удаление, которые запускаешь из под админа/sudo


RE: Мод "Master of puppets" - gamecreator - 15.09.2016 05:54

(15.09.2016 00:49)fireman Wrote:  В дополнение к gamecreator'у: не стоит бездумно заменять %cd% на %~dp0 в своих скриптах. Последняя даёт путь со слэшем на конце в отличии от первой, поэтому нужно ещё немного магии:
Code:
set mypath=%~dp0
set mypath=%mypath:~,-2%
Теперь намного вероятнее, что не будет проблем из-за запуска под админом. Но могут и быть. Всегда стоит проверять скрипты на удаление, которые запускаешь из под админа/sudo
Ну ради бога, подставь его везде:
Code:
del "%~dp0\имяфайла"
Не вижу чем это хуже твоего способа с переменной.
Более того, можно просто-напросто проверить результат выполнения предыдущей команды:
Code:
cd %~dp0
if errorlevel 1 (
    echo Unable to uninstall MoP.
    pause
    exit /B %errorlevel%)



RE: Мод "Master of puppets" - fireman - 16.09.2016 00:26

gamecreator, замечание было для тех, кто увидев это решение начнёт использовать его. В данном случае твой вариант вполне годится. И да, erorrlevel прикольный способ, обязательно заюзаю


RE: Мод "Master of puppets" - gamecreator - 16.09.2016 01:39

(16.09.2016 00:26)fireman Wrote:  gamecreator, замечание было для тех, кто увидев это решение начнёт использовать его.
То есть для меня Sm. Потому посчитал нужным разобраться.


RE: BAT-файлы - fireman - 17.09.2016 02:43

В данном случае использовать не для решения проблемы в МОП, а в целом в своих скриптах на удаление всего аля
Code:
del /s /q *

Круто, когда твой скрипт должен почистить логи, а запустил ненароком из под админ консоли...

Думаю, что можно ещё делать такую проверку для удаляющих скриптов:

Code:
if %cd%==%windir%\system32 (
echo Скрипт пытается удалить файлы в %cd%
echo Скрипт будет остановлен
exit
) else (
del /s /q *
rd /s /q *
)
pause

Хотя есть подозрение, что моя проверка тоже сработает не всегда.