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

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

vasya00 15-12-2012 14:34 2045804

Не работает bat файл в windows 7
 
Подскажите, почему может не работать bat файл самого простого содержания
Код:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V Shell /D "explorer.exe" /f
если его просто запустить.. А если его прописать в строке CMD то все прекрасно работает.. Почему так??

Iska 15-12-2012 14:58 2045816

vasya00, как назван Ваш «bat файл самого простого содержания»?

vasya00 15-12-2012 15:03 2045818

000.bat
windows7 x64 если это важно

лежит в c:\reg\000.bat нечего сложного...

Petya V4sechkin 15-12-2012 15:29 2045827

Цитата:

Цитата vasya00
если его просто запустить

От имени Администратора

vasya00 15-12-2012 15:56 2045847

Запуск от имени Администратора не помогает..именно для команды REG, другое работает..

Petya V4sechkin 15-12-2012 16:35 2045866

vasya00, неужели вы запускаете BAT-файл из Total Commander?

vasya00 15-12-2012 16:41 2045870

нее, правой кнопкой запуск от имени.. я подозреваю что-то не так...?))

Petya V4sechkin 15-12-2012 16:43 2045872

vasya00, никому неизвестно, что у вас не так.
Играть в угадалки надоело. Добавьте в конец файла:
Код:

pause
и покажите результат.

vasya00 15-12-2012 16:46 2045876

добавлял, результата нет, окно сразу пропадает...

Petya V4sechkin 15-12-2012 16:48 2045878

vasya00, это прекрасно.
Поищите у себя reg.cmd или reg.bat и удалите.

vasya00 15-12-2012 17:04 2045884

ОО спасибо большое все наконец-то заработало...
Еще конечно есть вопрос, если этот bat файл запускается не вручную а его запускает программа, то появляется окно о том что все успешно, но значение реестра не импортируется, в Windows XP все работало.. Возможно если bat запускается программой то не с правами администратора? В этом может быть проблема или тогда не писал бы что все успешно?

Владислав_Поплавский@vk 03-11-2014 18:00 2424084

SET BINDIR=%~dp0
CD /D "%BINDIR%"
java -Xincgc -Xmx1G -Dfile.encoding=UTF-8 -jar craftbukkit-1.7.2-R0.1.jarpause




подкариктуруйте плиз не запускается

Georgio 03-11-2014 18:46 2424130

Владислав_Поплавский@vk, вот цитата из этой же темы:
Цитата:

Цитата Petya V4sechkin
никому неизвестно, что у вас не так.
Играть в угадалки надоело. Добавьте в конец файла:
Код:

pause
и покажите результат. »

.

михаил5 30-06-2016 12:48 2646738

здравствуйте.
занимался созданием простого cmd-файла, цель которого отключать переход на летнее время, путем внесения двух записей в реестр.
цель двухступенчатая:
1. отключать переход на летнее время (записями в реестр).
2. использовать команду net time для синхронизации часов пользователей с часами сервера.

для чего это нужно:
при использовании net time без отключения перехода на летнее время, пользовательская система искажает время на час, относительно времени на сервере.
программа будет ставиться в автозагрузку пользователям, что позволит всегда поправлять время на "автомате".

команда net time работает идеально.
а вот с командой reg add возникли непонятные сложности.

текст cmd-файла:
reg add HKLM\SYSTEM\ControlSet001\Control\TimeZoneInformation /v DisableAutoDaylightTimeSet /t REG_DWORD /d 00000001 /f
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v DisableAutoDaylightTimeSet /t REG_DWORD /d 00000001 /f
pause

поведение reg add:
при запуске такого текста окошко подмигивает тебе без результата.
pause - не спасает положение.
запуск файла через cmd.exe, строку тотала, через "выполнить", не меняет положение.
reg.cmd и reg.bat полностью отсутствуют на с:
запускал программу по разному: со стола, с диска, другой программой, из под админа - нет изменений.
изменял текст файла (ставил кавычки в названиях веток) - результата нет.

при запуске cmd.exe от админа, и запуске из него данного файла выдается ошибка |r не является
внутренней или внешней...

название файла: 22.cmd
система: xp (pro, sp3) 32-bit
через *.reg-файл все работает (следовательно, как я понимаю, запрета на запись в реестр - нет).
cmd.exe - спокойно лежит в system32

что за чудо, и что я делаю не так?
спасибо за ответ.

Petya V4sechkin 30-06-2016 16:53 2646816

михаил5, сделайте лог Process Monitor следующим образом:
  1. запустите Process Monitor;
  2. попытайтесь запустить проблемный CMD-файл;
  3. сохраните лог: меню File -> Save -> PML-формат;
  4. заархивируйте и выложите на любой файлообменник, например rghost.ru.

михаил5 30-06-2016 18:56 2646859

сделал.
лог залил на яндекс-диск
yadi.sk/d/x1muKJDnsue8U

Petya V4sechkin 30-06-2016 19:01 2646861

михаил5, так у вас же CMD-файл в Юникод кодировке :)
Сохраните в ANSI.

михаил5 30-06-2016 19:12 2646864

заработало.
спасибо Petya V4sechkin.
не знал такой тонкости, очень интересно.
в добавок, если вас не затруднит, опишите пожалуйста вкратце как это "узналось" из лога (или направьте туда, где модно прочитать, подучиться).
или вы просмотрели сам 2-2.cmd ?
спасибо.

Petya V4sechkin 30-06-2016 19:16 2646866

Цитата:

Цитата михаил5
или вы просмотрели сам 2-2.cmd ?

Ну да.

михаил5 30-06-2016 19:22 2646869

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

кроме того, стал интересен факт, что одни команды строки (написанные в cmd-пакет) спокойно работают в Юникоде, а другие требуют для работы ANSI.

Petya V4sechkin 30-06-2016 19:30 2646880

михаил5, кстати, первая команда не нужна: только CurrentControlSet имеет значение.

михаил5 30-06-2016 19:50 2646889

спасибо Petya V4sechkin.
исправлю.

появился закономерный вопрос:
можно ли где-нибудь ознакомиться с детальным описанием назначений веток реестра? (имеется в виду профессиональная литература).
чтобы более осознаннее работать с компьютером.

например, описаний подобных сему dic.academic.ru/dic.nsf/ruwiki/1076712 явно мало.
в книге А. В. Куприянова "реестр windows xp" - есть много полезного, но рассмотрены далеко не все ветки.
пока изучаю книги Романа Клименко и Александра Петровича Климова.
---------------------------------------------------------------------------------------------------------------------------------------------------
в подарок за информацию:

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

В сети "навязчивая мерзота" бывает двух видов:
1. Сайты, картинки с этих сайтов и т. п. Здесь, защита строится путем настроек яндекс-поисковика в любом браузере (К сожалению, пока подобная настройка возможна только в яндекс-поисковике).
2. Это отображаемая "нечесть" в боковых банерах страничек, где по идее должна быть реклама. Здесь, защита строится путем установки и настройки бесплатной программы adblockplus, призванной избавить пользователя от назойливой рекламы.

Для настройки защиты нужно выполнить несколько шагов.

1. Настроить защиту в браузере. для этого зайдите в яндекс-поисковик. чтобы отключить поиск и отображение "порно-ресусов" в виде сайтов и картинок, нужно выбрать настройку "семейный" в режиме показа картинок в яндексе (пояснение: yadi.sk/i/pj5CnXSchoQLH).
2. Настроить защиту от рекламных окон. Для защиты от всплывающих и рекламных окон (в которых зачастую возникают "картинки"), нужно установить бесплатный блокиратор рекламы с официального сайта (adblockplus.org). При заходе на сайт программы, определяется тип вашего браузера и предлагается подходящая версия. После установки, ярлык программы отобразится справа сверху, в окне вашего браузера (пояснение: yadi.sk/i/ziRDg_13hoQLK).
3. Для защиты от возможности просмотра "порно-ресусов" в других поисковиках, нужно в настройках программы adblockplus, во вкладке "персональные фильтры" вставить полный адрес блокируемых сайтов. в данном случае в качестве таких "других поисковиков" выступают поисковики в которых невозможно включить "семейный" режим работы с интернетом. Это поисковики маил, рамблер, гугл, аск и т.д. (пояснение: yadi.sk/i/5c5WbRHuhoQLM и yadi.sk/i/S30xPid2hoQLR).
4. поставить яндекс в качестве домашней страницы браузера. (логично только для аудиторных компьютеров).

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

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

понимаю, что сообщение явно не по теме форума. пусть модератор решит куда и как девать данное сообщение.

михаил5 04-07-2016 12:46 2647862

доброго времени суток.
делимся кодом, как обещано.

и так, для установки автоматической синхронизации часов с сервером используем 3 файла:
1. setup ST.cmd - установщик.
2. SynchTIME.cmd - сам настройщик.
3. start.cmd - файл запускающий настройщик в свернутом режиме (как запускать cmd в свёрнутом виде из реестра - не знаю, кроме того если нужно добавить другие программы в автозапуск - можно будет просто поправить содержание start.cmd и лишний раз не "химичить" с реестром).

содержание setup ST.cmd:
@echo off
MKDIR C:\WINDOWS\auto-settings -- создаем папку --
move /y Start.CMD C:\WINDOWS\auto-settings\ -- переносим в нее Start.CMD --
move /y SynchTIME.cmd C:\WINDOWS\auto-settings\ -- переносим в нее SynchTIME.cmd --
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v SynchTIME /t REG_SZ /d C:\WINDOWS\auto-settings\Start.CMD /f -- ставим Start.CMD в автозагрузку --

содержание SynchTIME.cmd:
@echo off
ping -n 5 -w 100000 1.1.1.1 >nul -- делаем 5 запросов на сервер 1.1.1.1, с ожиданием 100 сек (т. е. включаем задержку до 8 минут, пока компьютер будет просыпаться и подключаться к сети) --
reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v DisableAutoDaylightTimeSet /t REG_DWORD /d 00000001 /f -- отключаем переход на летнее время --
net time \\******* /set /yes -- синхронизируем часы пользователя с часами сервера ****** --
exit
-- как вы понимаете, ******- это сетевое имя вашего сервера, 1.1.1.1 - его IP, а то, что между -- -- в коде не пишется --

содержание start.cmd:
@echo off
start /min C:\WINDOWS\auto-settings\SynchTIME.cmd -- запускаем SynchTIME.cmd в свернутом режиме --

все три файла записываются в одну папку, которая и копируется пользователям.
"установкой" занимается файл setup ST.cmd
в дальнейшем, часики будут правиться при каждой загрузке.
настройка хорошо работает на хр.
подозреваю, что в win7 строка (reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v DisableAutoDaylightTimeSet /t REG_DWORD /d 00000001 /f ) не понадобится в SynchTIME.cmd.

такой способ хорош, если стандартные методы не всегда срабатывают.
после установки можно наслаждаться делами :).


Время: 20:41.

Время: 20:41.
© OSzone.net 2001-