Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти

 
Расширенный поиск

800879 Сообщений в 11256 Тем- от 88239 Пользователей - Последний пользователь: dron78

27 Ноябрь 2020, 18:40:49
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Надо научиться писать bat-файлы
Страниц: 1 2 3 4 [Все]   Вниз
Печать
Автор Тема: Надо научиться писать bat-файлы  (Прочитано 11510 раз)
Aterra
Ветеран
*****
Пол: Женский
Сообщений: 655



« : 23 Сентябрь 2012, 12:56:21 »

Ребят, подскажите, пожалуйста, толковую книжку или сайт, чтобы научиться писать батники
у меня есть несколько примеров батников, я чисто интуитивно что-то в них понимаю, но требуется разобраться полностью и суметь написать свои батники
спасибо
Записан

Где Вы видели Кошку, которую бы волновало, что о ней думают мыши?

Кесарю - кесарево, а Aterr'е - asus © ВеНиК
-= 666 DEVIL 666 =-
Ветеран
*****
Пол: Мужской
Сообщений: 1803



« Ответ #1 : 23 Сентябрь 2012, 15:43:24 »

Да вроде команд то не много.

ASSOC - Отображает или модифицирует связи расширений файлов
AT - Планирует команды и программы для выполнения на компьютере.
ATTRIB - Отображает или изменяет атрибуты файла.
BREAK - Устанавливает или отменяет проверку комбинации [Ctrl+C].
CACLS - Отображает или модифицирует списки управления доступом (ACLs) для файлов.
CALL - Вызывает один *.BAT-файл из другого.
CD - Отображает имя или изменяет имя текущей директории.
CHCP - Отображает или устанавливает номер активной кодовой страницы.
CHDIR - Отображает имя или изменяет имя текущей директории.
CHKDSK - Проверяет диск и отображает отчет о состоянии.
CLS - Очищает экран.
CMD - Стартует новый экземпляр интерпретатора команд Windows NT.
COLOR - Устанавливает цвета по умолчанию для переднего и заднего плана консоли.
COMMAND - Стартует новую копию интерпретатора команд Windows.
COMP - Сравнивает содержимое двух файлов или установки файлов.
COMPACT - Отображает или видоизменяет сжатие файлов на патрициях Windows NT(NTFS).
CONVERT - Конвертирует FAT томов к формату файловой системы Windows NT(NTFS). Вы не можете конвертировать текущий диск.
COPY - Копирует один или больше файлов на другое место.
CTTY - Изменяет терминальное устройство, используемое для управления вашей системой.
DATE - Отображает или устанавливает дату.
DEL - Удаляет один или более файлов.
DEBUG - Выполняет отладку, тестирование программ и редактирование инструментальных средств.
DIR - Отображает список файлов и поддиректорий в директории.
DISKCOMP - Сравнивает содержимое двух дискет.
DISKCOPY - Копирует содержимое одной дискеты на другую.
DOSKEY - Редактирует командные строки, восстанавливает команды Windows и создает макрос.
ECHO - Отображает сообщения, или включает/выключает вывод команд.
EMM386 - Включает/выключает поддержку расширенной памяти EMM386.
ENDLOCAL - Заканчивает локализацию изменений окружающей среды в *.BAT-файле.
ERASE - Удаляет один или более файлов.
EXIT - Прекращает выполнение программы (интерпретатор команд).
EXTRACT - Средство извлечения информации из CAB - файлов.
FC - Сравнивает два файла или установки файлов, и отображает различие между ними.
FIND - Ищет текстовую строку в файле или файлах.
FINDSTR - Поиск строк в файлах.
FOR - Выполняет указанную команду для каждого файла в наборе файлов.
FORMAT - Форматирует диск для использования с Windows.
FTYPE - Отображает или модифицирует типы файлов, используемых в связях расширений.
GOTO - Направляет интерпретатор команд Windows NT к помеченной строке в *.BAT-файле.
GRAFTABL - Способность Windows отображать символы псевдографики, вставленные в графическом режиме.
HELP - Обеспечивает информацию Help для команд Windows.
IF - Выполняет обработку условия в *.BAT-файле.
KEYB - Конфигурирует клавиатуру для заданного языка.
LABEL - Создает, изменяет, или удаляет метку тома на диске.
LOADHIGH(LH) - Загружает программу в верхние адреса памяти.
MD - Создает директорию.
MEM - Отображает величину используемой и свободной памяти в вашей системе.
MKDIR - Создает директорию.
MODE - Конфигурирует системное устройство.
MORE - Отображает вывод одного экрана за раз.
MOVE - Перемещает один или более файлов из одной директории в другую на том же диске.
NETSTAT - Отображает статистики протоколов и текущих сетевых соединений TCP/IP.
NLSFUNC - Загружает информацию, специфическую для страны.
PATH - Отображает или устанавливает путь поиска для выполняемых файлов.
PAUSE - Приостанавливает обработку *.BAT-файла и отображает сообщение.
POPD - Восстанавливает предыдущее значение текущей директории, сохраненной по PUSHD.
PRINT - Печатает текстовый файл.
PROMPT - Изменяет подсказку к командам Windows.
PUSHD - Сохраняет текущую директорию, потом изменяет.
RD - Удаляет директорию.
RECOVER - Восстанавливает читаемую информацию с плохого или дефектного диска.
REM - Записывает комментарии (примечания) в *.BAT-файлы или CONFIG.SYS.
REN - Переименует файл или файлы.
RENAME - Переименует файл или файлы.
REPLACE - Заменяет файлы.
RESTORE - Восстанавливает файлы, которые были архивированы с использованием команды BACKUP.
RMDIR - Удаляет директорию.
SET - Отображает, устанавливает или удаляет переменные среды Windows.
SETLOCAL - Начинает локализацию изменений среды в *.BAT-файле.
SETVER - Устанавливает номер версии MS-DOS, который Windows сообщает программе.
SHIFT - Сдвигает позицию замещаемых параметров в *.BAT-файле.
SMARTDRV - Инсталлирует и конфигурирует утилиту кэширования диска SMART - драйва.
SORT - Сортирует входной поток.
START - Стартует отдельное окно для выполнения указанной программы или команды.
SUBST - Связывает путь с литерой диска.
SYS - Копирует файлы системы MS-DOS и интерпретатор команд на указанный вами диск.
TIME - Отображает или устанавливает системное время.
TITLE - Устанавливает заголовок окна для сеанса .
TREE - Графически отображает структуру директория в драйве или путь.
TYPE - Отображает содержимое текстового файла.
VER - Отображает версию Windows.
VERIFY - Сообщает Windows, проверять ли правильность записи файлов на диск.
VOL - Отображает метку дискового тома и серийный номер.
XCOPY - Копирует файлы и деревья директории.
Записан

-= 666 DEVIL 666 =-
Ветеран
*****
Пол: Мужской
Сообщений: 1803



« Ответ #2 : 23 Сентябрь 2012, 15:48:12 »

И еще архивчик Ольге подарю.
Записан

Aterra
Ветеран
*****
Пол: Женский
Сообщений: 655



« Ответ #3 : 23 Сентябрь 2012, 16:57:18 »

спасибо))))

вопрос по конкретному файлу (текст и как я его поняла)

Файл WRITE_FD:           
@echo off                    //отключение эхо-сопровождения
cls                          //очистка экрана 
IF "%4" neq "" (             //тут сравнивается 5й параметр запуска файла (они нумеруются с 0,
                               где в %0 пишется само  имя файла) с чем-то (вроде как с пустой строкой)
                               но! что за операция neq?
echo %1 %2 %3 %4 >> db.txt   //тут пишем параметры запуска файла в текстовый файл db.txt. судя по всему
                               в командной строке при запуске файла после его имени надо писать фио, год рождения,
                               город и пол какого-нить человека. и после занесения этой строчки в файл переходим
                               на  метку exit, после которой идет pause. и как будто тут программа должна меня
                               спросить: "чего дальше делать-то?"

goto exit
) ELSE goto help             //в противном случае идем на метку help, которая выводит мне формат ввода данных

:help
echo "WRITE_FD <FIO> <YEAR> <CITY> <SEX>";

:exit
pause;

вопросы:
1. скобки подразумевают, что все, что в них написано, должно быть выполнено при истинности условия? т.е. это типа операторных скобок begin-end? я могу скобки поставить сразу перед и сразу после команд, а не одинокие скобки в конце и в начале строк?
2. что за оператор neq? "neq"="not equal"="не равно"?
3. по какому принципу расставляются точки с запятой? в конце файла должна быть точка с запятой или что? в некоторых примерах у меня стоит точка с запятой, а в некоторых - нет
4. почему в условии имя переменной %4 стоит в кавычках, а при выводе в файл без кавычек?
« Последнее редактирование: 23 Сентябрь 2012, 18:10:54 от Aterra » Записан

Где Вы видели Кошку, которую бы волновало, что о ней думают мыши?

Кесарю - кесарево, а Aterr'е - asus © ВеНиК
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #4 : 23 Сентябрь 2012, 20:07:28 »

ходи сюда http://rsdn.ru/article/winshell/batanyca.xml
и сюда http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=220
Записан

Если красота не спасет этот мир, то его погубит ложь.
Aterra
Ветеран
*****
Пол: Женский
Сообщений: 655



« Ответ #5 : 23 Сентябрь 2012, 20:34:42 »

по первой ссылке я уже ходила. там нет ответа ни на один мой вопрос
вторая ссылка (форум) дает скопище примеров, которые (пусть и не конкретно эти) у меня уже есть
но за помощь спасибо)
Записан

Где Вы видели Кошку, которую бы волновало, что о ней думают мыши?

Кесарю - кесарево, а Aterr'е - asus © ВеНиК
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #6 : 23 Сентябрь 2012, 21:59:28 »

http://forum.ru-board.com/topic.cgi?forum=62&topic=0994&start=40#17
Записан

Если красота не спасет этот мир, то его погубит ложь.
hobo
Постоялец
***
Сообщений: 144



« Ответ #7 : 24 Сентябрь 2012, 06:30:31 »

1. скобки подразумевают, что все, что в них написано, должно быть выполнено при истинности условия?
2. что за оператор neq? "neq"="not equal"="не равно"?
3. по какому принципу расставляются точки с запятой? в конце файла должна быть точка с запятой или что? в некоторых примерах у меня стоит точка с запятой, а в некоторых - нет
4. почему в условии имя переменной %4 стоит в кавычках, а при выводе в файл без кавычек?

1, 2. См.
Код:
if /?
3. В конце точка с запятой не нужна
4. Чтобы 4-й параметр можно было сравнивать с пустой строкой. При выводе оно будет лишним
Записан
Aterra
Ветеран
*****
Пол: Женский
Сообщений: 655



« Ответ #8 : 24 Сентябрь 2012, 10:37:49 »

спасибо огромное!)))

4. Чтобы 4-й параметр можно было сравнивать с пустой строкой. При выводе оно будет лишним

т.е. тут получается некоторое отличие от работы со строковыми переменными в других языках?
я считала, что %4 - это имя параметра. и его значение это некоторая строка. а "%4" - это строка из двух символов
Записан

Где Вы видели Кошку, которую бы волновало, что о ней думают мыши?

Кесарю - кесарево, а Aterr'е - asus © ВеНиК
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #9 : 24 Сентябрь 2012, 16:35:04 »

я считала, что %4 - это имя параметра. и его значение это некоторая строка. а "%4" - это строка из двух символов
нет. Вместо %4 точно так же подставится параметр
если %4 равно например балалайка родная , то при сравнении
Код:
if "%4"="балалайка родная"
а без кавычек
Код:
if %4 = балалайка родная
после пробела будет ошибка
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #10 : 24 Сентябрь 2012, 16:49:15 »

Скрипты - дрянь. Учи нормальный язык.
Записан
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #11 : 24 Сентябрь 2012, 17:08:16 »

Кузька , перелогинься Улыбка
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #12 : 24 Сентябрь 2012, 17:13:43 »

Кузька , перелогинься Улыбка

Лис, ты чо?! Шокирован Это ж я!
Записан
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #13 : 24 Сентябрь 2012, 17:21:52 »

А почему советы в духе Кузька-стайл ?  Шокирован
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #14 : 24 Сентябрь 2012, 17:25:36 »

А почему советы в духе Кузька-стайл ?  Шокирован

Да толку от этих bat-файлов... как от козла молока. Простейшие операции. Чуть что посложнее копирования файлов - тут же облом`с.
Записан
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #15 : 24 Сентябрь 2012, 17:35:31 »

Вы просто не умеете их готовить (с)  Смеющийся
Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #16 : 24 Сентябрь 2012, 17:57:22 »

Вы просто не умеете их готовить (с)  Смеющийся

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

Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки

Скорее пишет курсовую.
Записан
zrche
Старожил
****
Пол: Мужской
Сообщений: 496



« Ответ #17 : 24 Сентябрь 2012, 19:42:54 »

Скрипты - дрянь. Учи нормальный язык.
А какой нормальный?
Записан

I came, I puked, I left
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #18 : 24 Сентябрь 2012, 19:53:35 »

А какой нормальный?
думаешь он сразу спалится и дельфя назовет? Улыбка
Записан

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #19 : 24 Сентябрь 2012, 20:35:57 »

А какой нормальный?

толсто
Записан
korsak
Ветеран
*****
Пол: Мужской
Сообщений: 4524



« Ответ #20 : 24 Сентябрь 2012, 21:19:07 »

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

Если красота не спасет этот мир, то его погубит ложь.
Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #21 : 25 Сентябрь 2012, 04:52:10 »

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

Консольные проекты ни в дельфях ни в шарпах вроде никто не отменял.
Записан
xxzz
Старожил
****
Пол: Мужской
Сообщений: 477



« Ответ #22 : 25 Сентябрь 2012, 06:29:22 »

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

Цитировать
но! что за операция neq?
Всю жизнь писал так: if not "1"=="2" ...... Смеющийся

Цитировать
1. скобки подразумевают, что все, что в них написано, должно быть выполнено при истинности условия? т.е. это типа операторных скобок begin-end? я могу скобки поставить сразу перед и сразу после команд, а не одинокие скобки в конце и в начале строк?
Да, но есть нюансы в применении скобок.

Цитировать
3. по какому принципу расставляются точки с запятой? в конце файла должна быть точка с запятой или что? в некоторых примерах у меня стоит точка с запятой, а в некоторых - нет
; в файлах не нужны, в конце echo этот символ будет выведен на экран, с командой pause скорее всего проигнорирован

Вы просто не умеете их готовить (с)  Смеющийся
Да и ТС вроде не собиралась на батниках 1С переписывать  Строит глазки
+1 Смеющийся

Да брось, тысячи их написаны Улыбка Хотя не могу за себя сказать, что знаю все команды досконально.
А надо стремиться к совершенству и учить, учить команды Смеющийся
Записан



Decoder
Ветеран
*****
Пол: Мужской
Сообщений: 1032



« Ответ #23 : 25 Сентябрь 2012, 17:23:04 »

А надо стремиться к совершенству и учить, учить команды Смеющийся

не смеши
Записан
Shire
Ветеран
*****
Пол: Мужской
Сообщений: 1015



« Ответ #24 : 25 Сентябрь 2012, 20:19:05 »

Огромный минус подобных скриптов - в том, что у них интерпретатор вызывается неявно, т.е. нет разделения на строки данных и на код команд, и не выделена явная работа со строками (подстрока/замена/шаблонизация).
В этом случае "интересный символ" в имени файла или параметре, который подставляется в генерируемую команду, может чудесным образом изменить эту команду до неузнаваемости.
Как вариант замены, Microsoft предложила PowerShell с объектными конвейерами, также есть python'овые и lua-шеллы. Но народ настолько привык, что везде лупит cmd- и shell-скрипты.
Записан
Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #25 : 11 Май 2016, 15:50:25 »

Помогите пожалуйста Нужно написать bat файл который бы перезагружал компьютер в безопасном режиме и в безопасном режиме же применялся твик реестра, затем автоматически перезагрузка в обычный режим. Возможно ли такое?
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #26 : 11 Май 2016, 16:56:42 »

Оно? http://forum.oszone.net/thread-297520.html
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #27 : 11 Май 2016, 17:12:08 »

Да, оно, читал уже это но все равно не могу разобраться. не могу понять сам принцип этой команды
Код:
Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt10x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 03
goto end

:ver_nt6x
:Run Windows Vista/7/8/8.1 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

:ver_nt10x
:Run Windows 10 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end

как туда вставить (в какое место) твик реестра?
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #28 : 11 Май 2016, 18:01:54 »

В этом коде первый блок - определение версии windows (для разных версий разный код для выбора варианта), затем идет 3 варианта в зависимости от версии. Строка типа
Код:
bootcfg /raw /a /safeboot:network /id 1
включает следующую загрузку в безопасном режиме.
строка
Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
добавляет в автозапуск (в реестре) однократно аналогичную команду, но выключающую безопасный режим. она будет выполнена после следующей загрузки windows.
тебе надо составить аналогичным образом еще одну команду для манипуляции с реестром после перезагрузки.
ну и наконец строка
Код:
SHUTDOWN -r -f -t 03
непосредственно отправляет на перезагрузку.

Осталось решить как сделать перезагрузку из безопасного режима после гарантированного выполнения всех этих команд. Там могут быть хитрости с последовательностью, команда на перезагрузку, если ее добавить так же в реестре, может выполниться раньше, чем остальные добавленные здесь.
Это можно решить, например, через bat-файл в папке автозапуска, который сам себя удалит. Папка "автозагрузка" в пуске выполняется определенно после команд в реестре.
« Последнее редактирование: 11 Май 2016, 18:04:30 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #29 : 11 Май 2016, 18:23:25 »

Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
на сколько я понимаю этот код добавляет в реестр новый параметр типа REG_SZ, а как сделать чтобы не добавить а изменить имеющийся параметр REG_DWORD?
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #30 : 11 Май 2016, 18:53:39 »

Не всё так просто Улыбка он добавляет, да, но тебе надо написать такую команду, которая добавит в реестр команду, которая будет изменять нужный кусок реестра Улыбка
А изменение записи делается через то же reg add но с ключом /f (инструкция)
Итак, два этапа.
Первый - так будет выглядеть команда на перезапись параметра:
Код:
REG ADD HKLM\SOFTWARE\тра-ля-ля\ветка /v "параметр" /t REG_DWORD /d число /f
Второй этап: нам надо добавить эту команду в ветку реестра, в которой хранится однократный автозапуск:
Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d "REG ADD HKLM\SOFTWARE\тра-ля-ля\ветка /v \"параметр\" /t REG_DWORD /d число /f"
Прошу обратить внимание - кавычки у команды экранированы.
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #31 : 11 Май 2016, 19:14:54 »

Код:
REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v "*PackageFeatures" /t REG_DWORD /d 0000003d /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d "REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v \"*PackageFeatures\" /t REG_DWORD /d 0000003d /f"
вот так правильно будет?  нет наверно не судьба мне разобраться)))
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #32 : 11 Май 2016, 20:55:29 »

Вроде похоже. единственное что хз слопает ли такую форму представления числа как 0000003d или надо в формате 0x0000003d писать. лучше поэкспериментировать на каких-нибудь неиспользуемых параметрах Улыбка

А, и еще звездочка там не нужна скорей всего. Если в названии параметра этой звездочки нет.
« Последнее редактирование: 11 Май 2016, 21:10:40 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #33 : 11 Май 2016, 21:44:58 »

Вот так попробовать или еще что-то подправить? и в автозагрузку положить батник перезагрузки?

Код:
Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt10x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
bootcfg /raw /a /safeboot:network /id 1
REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v "PackageFeatures" /t REG_DWORD /d 0x0000003d /f
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d "REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v \"PackageFeatures\" /t REG_DWORD /d 0x0000003d /f"
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
SHUTDOWN -r -f -t 03

:ver_nt6x
:Run Windows Vista/7/8/8.1 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

:ver_nt10x
:Run Windows 10 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 03
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end

Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #34 : 11 Май 2016, 22:48:44 »

Эммм... Ну если ты заранее знаешь, на какой системе это будет запускаться, то собственно большую часть того кода можно выкинуть.
Я так понимаю в нашем случае под XP? Тогда что-то типа:
Код:
:: Настроить следующую перезагрузку в безопасном режиме
bootcfg /raw /a /safeboot:network /id 1
:: После загрузки выполнить следующие команды автозапуска:
:: Вернуть обратно нормальный режим загрузки (не безопасный)
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
:: Внести требуемые изменения в реестр
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d "REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v \"PackageFeatures\" /t REG_DWORD /d 0000003d /f"
:: Запланировать перезагрузку - с этим этапом могут быть проблемы если он выполнится не последним
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*XXRestart" /t REG_SZ /d "SHUTDOWN -r -f -t 03"
:: Выполнить перезагрузку
SHUTDOWN -r -f -t 03
Можно протестировать - если работать будет правильно, то можно не городить огород с bat-файлами в папке автозагрузки. Значит выполняются команды по мере внесения в реестр или по алфавиту.
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #35 : 11 Май 2016, 23:13:03 »

Blackman, спасибо большое! Завтра попробую.
Записан

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #36 : 13 Май 2016, 19:09:33 »

Попробовал - результат система перезагружается в безопасный режим и снова загружается в обычный, параметры реестра не меняются.
значит перезагрузка выполняется раньше чем все остальные команды.
А на счет бат файла в автозагрузке - где то читал, что в безопасном режиме не запускаются программы из папки автозапуска.
---------------
Да, точно проверил из автозагрузки не запускается файл в безопасном
« Последнее редактирование: 13 Май 2016, 19:30:51 от Meys » Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #37 : 13 Май 2016, 21:18:34 »

Тогда как вариант запускать из автозапуска в реестре батник, который будет все эти вещи выполнять: и нужные модификации реестра и перезагрузку.
Но только вот я не уверен что ветка RunOnce умеет запускать не PE EXE-файлы...
Экспериментируй! Улыбка

P.S. Сейчас подумал - а никто не мешает запускать батник не напрямую, а через передачу его командному интерпретатору. То есть условно говоря cmd.exe путь\файл.bat
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #38 : 13 Май 2016, 21:38:10 »

P.S. Сейчас подумал - а никто не мешает запускать батник не напрямую, а через передачу его командному интерпретатору. То есть условно говоря cmd.exe путь\файл.bat
Не понял, ты говоришь про батник перезагрузки который хотели в автозагрузку поместить  или который все команды выполняет? Чем это может помочь?
---------
Почему-то даже одна команда
REG ADD HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info /v \"PackageFeatures\" /t REG_DWORD /d 0000003d /f
при запуске её в безопасном не меняет параметр.
0x0000003d тоже пробовал
« Последнее редактирование: 13 Май 2016, 22:48:04 от Meys » Записан

vvgNovanet
Ветеран
*****
Пол: Мужской
Сообщений: 526



« Ответ #39 : 13 Май 2016, 22:54:57 »

Кавычки забыл ( пробелы есть без кавычек не пойдёт )
"HKLM\Software\ESET\ESET Security\CurrentVersion\Info"

так должно быть
REG ADD "HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" /v \"PackageFeatures\" /t REG_DWORD /d 0000003d /f


тоже когда то делал активатор )))

У меня так работало 100%

Это только пример
echo Результат: Активация......
echo Активация панели смены сервера обновлений...
REG ADD "HKLM\Software\ESET\ESET Security\CurrentVersion\Info" /v PackageFeatures /t REG_dword /d 00000001 /f
echo Активация программы.....
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Settings" /v RegistrationType /t REG_dword /d 00000000 /f
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000400\Settings" /v Registration /t REG_dword /d 00000001 /f
echo Отключение контроля за системными обновлениями.....
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000600\Profiles\@My profile" /v WUWarningLevel /t REG_dword /d 00000000 /f
echo Отключение игрового режима.......
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Plugins\01000600\Profiles\@My profile" /v GamerModeFullScreenEnabled /t REG_dword /d 00000000 /f
echo Активация произведена перезагрузите компьютер.....
:Done
del temp.txt
echo.
pause
exit
« Последнее редактирование: 13 Май 2016, 22:58:20 от vvgNovanet » Записан
Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #40 : 13 Май 2016, 23:31:12 »

С кавычками тоже не меняет Грустный
Запускаю в безопасном режиме батник вот с этим содержимым
REG ADD "HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" /v \"PackageFeatures\" /t REG_DWORD /d 0000003d /f
Записан

vvgNovanet
Ветеран
*****
Пол: Мужской
Сообщений: 526



« Ответ #41 : 13 Май 2016, 23:34:25 »

А если так Непонимающий
REG ADD "HKLM\Software\ESET\ESET Security\CurrentVersion\Info" /v PackageFeatures /t REG_dword /d 00000003 /f

Может у тебя винда 64 битная ? пробуй в конец записать /reg:64
REG ADD "HKLM\Software\ESET\ESET Security\CurrentVersion\Info" /v PackageFeatures /t REG_dword /d 00000003 /f/reg:64

https://support.microsoft.com/ru-ru/kb/948698
« Последнее редактирование: 13 Май 2016, 23:47:32 от vvgNovanet » Записан
Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #42 : 13 Май 2016, 23:47:02 »

Вот так прокатило 0x0000003d Улыбка
Записан

vvgNovanet
Ветеран
*****
Пол: Мужской
Сообщений: 526



« Ответ #43 : 13 Май 2016, 23:50:31 »

Вот так прокатило 0x0000003d Улыбка
Ну и прекрасно, потом рабочим батничком не забудь поделиться )))
Записан
Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #44 : 14 Май 2016, 00:00:45 »

попробовал без перезагрузки из безопасного режима вот так:
Код:
:: Настроить следующую перезагрузку в безопасном режиме
bootcfg /raw /a /safeboot:network /id 1
:: После загрузки выполнить следующие команды автозапуска:
:: Вернуть обратно нормальный режим загрузки (не безопасный)
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
:: Внести требуемые изменения в реестр
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d "REG ADD "HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" /v PackageFeatures /t REG_DWORD /d 0x0000003d /f"
:: Выполнить перезагрузку
SHUTDOWN -r -f -t 03
опять не хочет менять параметр

похоже не выполняется вот эта часть
Код:
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*ResetCounter" /t REG_SZ /d...
« Последнее редактирование: 14 Май 2016, 00:13:10 от Meys » Записан

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #45 : 14 Май 2016, 22:43:50 »

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

1.bat:
Код:
Echo Off

REM Check Windows Version
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt5x
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "6\.3\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt6x
ver | findstr /i "10\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_nt10x
goto warn_and_exit

:ver_nt5x
:Run Windows 2000/XP specific commands here
:: Настроить следующую перезагрузку в безопасном режиме
bootcfg /raw /a /safeboot:network /id 1
:: После загрузки выполнить следующие команды автозапуска:
:: Вернуть обратно нормальный режим загрузки (не безопасный)
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bootcfg /raw /fastdetect /id 1"
:: Выполнить перезагрузку
SHUTDOWN -r -f -t 30
goto end

:ver_nt6x
:Run Windows Vista/7/8/8.1 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 30
goto end

:ver_nt10x
:Run Windows 10 specific commands here
bcdedit /set {current} safeboot network
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce /v "*UndoSB" /t REG_SZ /d "bcdedit /deletevalue {current} safeboot"
SHUTDOWN -r -f -t 30
goto end

Echo On

:warn_and_exit
echo Machine OS cannot be determined.

:end

2.bat:
Код:
REG ADD "HKLM\SOFTWARE\ESET\ESET Security\CurrentVersion\Info" /v PackageFeatures /t REG_DWORD /d 0x0000003d /f
SHUTDOWN -r -f -t 30
« Последнее редактирование: 14 Май 2016, 22:47:34 от Meys » Записан

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #46 : 29 Август 2017, 18:41:07 »

Здравствуйте! Помогите написать batник нужно скопировать файл с удаленного компьютера в локальной сети на мой компьютер.
Как указать локальный диск на котором расположен файл?
Если на компьютере с которого нужно скопировать установлен пароль, то как поступить в таком случае?
В интернете роюсь - ничего не могу найти. То что нахожу все не работает.
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #47 : 29 Август 2017, 18:48:14 »

Для начала: а собственно bat-ник где запускаться будет? на твоем компьютере или на удаленном?
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #48 : 29 Август 2017, 18:51:04 »

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

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #49 : 29 Август 2017, 19:05:35 »

Там может быть некоторая разница в зависимости от ОС с менеджментом паролей, но так обычное использование copy с сетевого имени типа \\Other_computer\C\folder\file.ext Естественно, эта папка должна быть расшарена. Либо использовать админские имена дисков типа $D. Можно вообще через net use подключить как сетевой диск с паролем-логином.

По поводу готовых решений: пара ссылок:
http://forum.oszone.net/showthread.php?s=31578e2b3c42f9e373ba9bcfe52b3eda&t=201097&page=2
http://forundex.ru/admin/Skopirovatj-papku-po-seti-so-vsem-soderzhimim-(XCOPY-i-setevoj-disk)-203681
http://www.windowsfaq.ru/content/view/49/57/
http://forum.ixbt.com/topic.cgi?id=22:73333
« Последнее редактирование: 29 Август 2017, 19:10:15 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #50 : 29 Август 2017, 19:14:24 »

Код:
D:\>copy "\\192.168.1.3\D$\1\1.txt" "C:\1.txt"
Отказано в доступе.

D:\>pause
Для продолжения нажмите любую клавишу . . .

папка расшарена
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #51 : 29 Август 2017, 19:28:42 »

Как имя расшаренной папки? Ты пытаешься достучаться до ресурса D$ со специальным доступом - туда пускают только пользователей с того компьютера. Если ты расшарил папку, то и обращайся к ней по присвоенному имени.

copy "\\192.168.1.3\share_name\1.txt" "C:\1.txt"

Через проводник оттуда копируется нормально?

P.S. Кавычки нужны в основном для имен с пробелами и прочим нестандартом
« Последнее редактирование: 29 Август 2017, 19:31:09 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #52 : 29 Август 2017, 19:38:46 »

Код:
C:\Users\Дима\Desktop>copy "\\192.168.1.3\name\1.txt" "d:\5.txt"
Скопировано файлов:         1.

C:\Users\Дима\Desktop>pause
Для продолжения нажмите любую клавишу . . .
вот так получилось без указания диска. файл 1.txt на удаленном компьютере находится на диске D.
Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #53 : 29 Август 2017, 19:47:16 »

Теперь понял о чем вопрос был Улыбка
Нет, в случае расшаренных сетевых ресурсов абсолютно не важен ни диск, на котором они лежат, ни путь. Обращение идет только по имени - какое имя присвоишь, по такому по сети и обращаешься, и не важно что фактически эта папка лежит на 15 уровне вложенности диска j: например.
А встроенные samba-ресурсы типа C$ и D$ позволяют обращаться к нерасшаренным папкам на диске, но только имея админские права на том компьютере.
Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #54 : 29 Август 2017, 20:09:11 »

А как быть если на удаленном компьютере установлен пароль? Как пароль прописать в бат файле?
Код:
C:\Documents and Settings\Секретарь\Рабочий стол>copy \\192.168.1.2\DataBase\Sch
72003.GDB d:\Sch72003.GDB
Вход в систему не произведен: имя пользователя или пароль не опознаны.

C:\Documents and Settings\Секретарь\Рабочий стол>pause
Для продолжения нажмите любую клавишу . . .

Код:
net use \\192.168.1.2 password /user:ekj
xcopy \\192.168.1.2\DataBase\Sch72003.GDB D:\Sch72003.GDB
Вот так получилось скопировать, но перед этим выходил такой запрос
Код:
Что означает \DataBase\Sch72003.GDB:
имя файла или каталога
(F = файл, D = каталог)?
« Последнее редактирование: 29 Август 2017, 20:43:03 от Meys » Записан

Blackman
Администратор
*****
Пол: Мужской
Сообщений: 1512



WWW
« Ответ #55 : 29 Август 2017, 20:53:09 »

Мне кажется, копать в сторону команды net, в частности, net use
Там по ссылкам были готовые примеры.

P.S. А, ты уже сам догадался Улыбка
Запрос такой вылазит может быть из-за несоответствия регистра символов? Если в локальной файловой системе они особой роли не играют, то в SMB регистр имени файлов и папок уже может играть значительную роль.
Плюс не обязательно использовать xcopy, обычная copy тут наверняка вполне справится. xcopy там в примерах применяли для копирования папок целиком. Если хочется использовать именно её, то посмотри насчет параметров этой команды. из-за них у тебя может такое вылазить.
« Последнее редактирование: 29 Август 2017, 20:56:08 от Blackman » Записан

что-нибудь жизнеутверждающее

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #56 : 29 Август 2017, 22:19:22 »

Спасибо Blackman, завтра попробую.
Записан

Meys
Старожил
****
Пол: Мужской
Сообщений: 424



WWW
« Ответ #57 : 07 Сентябрь 2017, 16:46:03 »

Удалите пожалуйста.
« Последнее редактирование: 08 Сентябрь 2017, 11:36:40 от Meys » Записан

Страниц: 1 2 3 4 [Все]   Вверх
Печать
ADSL.Kirov.RuСообществаПрограммирование (Модератор: Ivanidze)Тема: Надо научиться писать bat-файлы
Перейти в: