Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12

Модерирует : KLASS, IFkO

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

   

hErAx

Редактировать | Цитировать | Сообщить модератору
Задачи на bat-файлах 12
Предыдущие части: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • При запуске batch-файла от Администратора текущая директория меняется на system32
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    qw12
    При запуске батника не появляется меню.
    Код:
    @echo off
    SET FindPath1=C:\Python35\Scripts\
    SET FindPath2=C:\Python35\
     
    SET NewPath1=C:\Python27\Scripts\
    SET NewPath2=C:\Python27\
     
    for /f "delims=| tokens=1,2" %%a in ('echo HKCU\Environment
    ^& echo HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment^^^|/M
    ') do (setlocal enabledelayedexpansion
    SET PATHwas=
    for /f "tokens=2,*" %%c in ('REG QUERY "%%a" /v PATH') do SET PATHwas=;%%d
    SET PATHx=!PATHwas:;%FindPath1%=!
    SET PATHx=!PATHx:;%FindPath2%=!
    if not !PATHx!==!PATHwas! SETX PATH !PATHx:~1!;%NewPath1%;%NewPath2% %%b
    )


    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 02:08 07-12-2017
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000

    Цитата:
    ОШИБКА: Синтаксическая ошибка. Параметр по умолчанию нельзя использовать более '2' раз(а).
    Введите "SETX /?" для получения справки по использованию.

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 02:40 07-12-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    кавычки забыл
    if not !PATHx!==!PATHwas! SETX PATH "!PATHx:~1!;%NewPath1%;%NewPath2%" %%b


    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 06:57 07-12-2017
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Inoz2000
    А что это вообще такое, если оно и близко не выполняет то, что я просил?
    Добавляет в переменную среду пользователя, а не системы. И добавляет бред:

    Код:
    C:\Python27
    C:\Python27\Scripts
    C:\Python27\Scripts
    C:\Python27" /M

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 10:29 07-12-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня всё работает нормально. Будет вечером возможность - проверю ещё раз. Код в вашем сообщении не проясняет ситуацию.

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 10:53 07-12-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    qw12
    видимо, дело в обратном слешэ
    if not !PATHx!==!PATHwas! SETX PATH "!PATHx:~1!;%NewPath1%;%NewPath2% " %%b
    попробовал добавить пробел перед кавычкой

    Проверяйте.

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 19:02 07-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    Задача создать bat файл для подключения сетевого диска из локальной сети, с указанием логина и пароля. Вход на комп, на котором целевая папка, осуществляется от имени "Администратор", пароль из русских букв. Сеть без домена
     
    Додумался только до
     

    Цитата:
     
    chcp 1251
    net use z: "\\otd-kadrov\пам парам"
     
     

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

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 22:22 07-12-2017 | Исправлено: dddimmm, 22:24 07-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dddimmm
    А если почитать хелп (net use /?)... Надо так
    Цитата:
    net use z: "\\server\some folder" <пароль> /user:<имя_компа>\Администратор

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 23:44 07-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Спасибо, а имя компа и пароль в одинарные кавычки?
     
    Добавлено:
    Pasha_ZZZ
    Пробовал с кавычками и без, диск даже не монтируется

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 18:46 08-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dddimmm
    Цитата:
    диск даже не монтируется
    Команда "даже" сообщает код ошибки и расшифровку, если что-то не так

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 19:28 08-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Видимо не выполняется какое то условие...
     
    Вход в компьютер(назовем его comp1), с которого необходимо получить доступ к нужной папке на другом компьютере в сети, выполняется от имени "Администратор", учётная запись имеет пароль.
     
    На втором компьютере(comp2), где находится целевой каталог к которому нужно получить доступ, вход выполняется от имени пользователя "User". Для настройки доступа на comp2, была активирована учётная запись "Администратор" и записи был присвоен пароль, аналогичный учётной записи "Администратор" на comp1.
     
    Настройки доступа и безопасности у целевого каталога на comp2

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

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 21:19 08-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dddimmm
    Цитата:
    Видимо не выполняется какое то условие...  
    Дахоспаде... что значит "видимо"? Вот как на самом деле это выглядит:
    Цитата:
    C:\>net use x: \\sgsdh\dfhf
    Системная ошибка 67.
     
    Не найдено сетевое имя.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 21:22 08-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Если через командную строку
     
    net use z: "\\OTD-Kadrov\жкс и жкс плюс" пароль /user:OTD-Kadrov\Администратор
     
    получаю "Системная ошибка 85. Имя локального устройства уже используется"

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 21:50 08-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dddimmm
    Цитата:
    Имя локального устройства уже используется
    Ну и? Вам говорят, что данная буква диска уже используется.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 21:59 08-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Перезагрузил comp1, команда сработала, без каких либо ошибок, диск смонтирован, но при открытии Отказано в доступе

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 22:21 08-12-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dddimmm
    Это значит права с вкладки Доступ сработали, а с вкладки Безопасность - нет.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 22:25 08-12-2017
    dddimmm



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Пароль на русском, большие и маленькие буквы, может в этом проблема?

    Всего записей: 1857 | Зарегистр. 28-07-2007 | Отправлено: 07:50 09-12-2017
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DEL

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 08:58 13-12-2017 | Исправлено: sundraw, 14:55 15-12-2017
    harpy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    очень полезная штука http://nssm.cc/
    позволяет запускать батники как сервис, выбирая нужный интерпретатор (eg: cmd /c my.cmd) в качестве исполняемого модуля.

    Всего записей: 1387 | Зарегистр. 26-01-2006 | Отправлено: 11:50 13-12-2017
    sundraw

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Составил батник

    Код:
     
    С ОШИБКАМИ
    @echo off  
    set var=  
    set /a var=1
    for /l %%i in (1,1,10) do (
    :begin
    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol %%i execute --image "C:\Windows\RestartPC.bat" --username Admin --password 1 --recursive
    ping -n 7 localhost >nul
    IF ERRORLEVEL 1 GOTO loop
    echo count %var%  
    set /a var+=1
    goto begin
    )
    exit
     
    :loop
     for /l %%i in (1,1,2) do (
    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol %%i execute --image "C:\Windows\RestartPC.bat" --username Admin --password 1 --recursive
    ping -n 7 localhost >nul
    IF ERRORLEVEL 0 GOTO begin
     
    )
    goto begin
     


    Код:
     
    ИСПРАВЛЕННЫЙ
    @echo off  
    setlocal enabledelayedexpansion
    set var=  
    set /a var=1
    for /l %%i in (1,1,10) do (
    :begin
    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol %%i execute --image "C:\Windows\RestartPC.bat" --username Admin --password 1 --recursive
    IF ERRORLEVEL 1 GOTO loop
    echo count !var!  
    set /a var+=1
     
    )
    exit
     
    :loop
     for /l %%i in (1,1,2) do (
    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol %%i execute --image "C:\Windows\RestartPC.bat" --username Admin --password 1 --recursive
    IF ERRORLEVEL 0 GOTO begin
     
    )
    goto begin
     

     
    Смысл его в том, что команда иногда может сработать не сразу, а со 2-3 раза. Тогда в случае  "ERRORLEVEL 1" цикл перенаправляется в метку :loop второго цикла, где дважды пытается повторить команду, и в случае успеха снова должен возвращаться в первый цикл, но уже на следующее по нумерации место. Если же во втором цикле все ошибки, то снова идёт возврат в первый цикл также на следующее по нумерации место.  
     Нужна помощь:
    1. В первом цикле счётчик работает, но уходит в бесконечную отработку. Как только убираю команду goto begin, цикл восстанавливается, но счётчик перестаёт работать. Как сделать, чтоб и цикл и счётчик работал.
    2. Во втором цикле если оба перезапуска прошли с ошибкой, то ошибку нужно перенаправить в текстовый файл error.txt, главное, чтоб в этом файле были отражены номера неотработанных задач первого цикла.

    Всего записей: 837 | Зарегистр. 15-05-2011 | Отправлено: 14:54 15-12-2017 | Исправлено: sundraw, 18:37 15-12-2017
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru