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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 09:35 10-04-2010 | Исправлено: ivn1978, 17:25 19-04-2010
    wolf0425



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

    Цитата:
    Насколько я понимаю, ERRORLEVEL здесь напрямую не сработает, т.к. запущенный скрипт отработал нормально, а пришедшая ошибка это не ошибка запуска скрипта?
    ошибка запуска скрипта тут ни при чем, если нужно чтоб запущенный скрипт возвращал ненулевой ERRORLEVEL - возвращаемый код нужно в скрипте прописывать. Может быть прописано, может нет - проверь.
    если не прописано - можно тупо перенаправить вывод скрипта на вход поиска.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:46 10-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 11:06 10-04-2010 | Исправлено: ivn1978, 17:25 19-04-2010
    mugil_cephalus

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

    Цитата:
    a-zA-Z0-9

    то есть %%27 - нельзя? а где ты узнал про не литеральные, а цифровые var в цикле. в help'e - только латинский abc...

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:26 10-04-2010 | Исправлено: mugil_cephalus, 12:27 10-04-2010
    duh_S

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

    Код:
     
    set ThisCmdDir=%~dp0
    start /wait "%ThisCmdDir%FoxitReader321_enu.msi" /quiet /qn
    DEL "%USERPROFILE%\Desktop\Foxit Reader.lnk"
    DEL /F /S /Q "%ThisCmdDir%*.*"
     

     
    пишет неверный ключ "/quiet" (или  "/qn" есть убрать первый)
     
    а в таком:
     

    Код:
     
    set ThisCmdDir=%~dp0
    start /wait "c:\distr\FoxitReader321_enu.msi" /quiet /qn
    DEL "%USERPROFILE%\Desktop\Foxit Reader.lnk"
    DEL /F /S /Q "%ThisCmdDir%*.*"
     

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

    Всего записей: 66 | Зарегистр. 28-08-2007 | Отправлено: 12:35 10-04-2010 | Исправлено: duh_S, 12:36 10-04-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    duh_S
    start /wait "" "%ThisCmdDir%FoxitReader321_enu.msi" /quiet /qn

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:10 10-04-2010
    wolf0425



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

    Цитата:
    то есть %%27 - нельзя?
    без понятия. тебе интересно - ты и проверяй

    Цитата:
    а где ты узнал про не литеральные, а цифровые var в цикле.
    не поверишь, но на этом форуме у кого-то увидел проверил - работает...
    что большие/маленькие буквы там различаются - тоже сначала тут заметил.
     
    ivn1978
    Цитата:
    Скорее всего нет, так как с разными уровнями ERRORLELEL пробовал уже.  
    не понял, чего пробовал? echo %ERRORLELEL% после вызова скрипта влепи, посмотри - зависит печатаемое число от результата скрипта или нет.
     

    Цитата:

    Цитата:
    если не прописано - можно тупо перенаправить вывод скрипта на вход поиска.
    Можно поподробней, как именно это сделать?


    Код:
    cscript //nologo %temp%\task.vbs | find "Error"  1>nul && echo "Error" found

     
     
     
     
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 13:18 10-04-2010
    BARABASHKA777

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Зайди на сайт freeloadlife.ucoz.ru
    там есть раздел "Оплаченная Реклама" кликни на любую ссылку и тогда в правом верхнём углу будет сайт на котором  
    ты сможеш пополнить счёт на моб. телефоне

    Всего записей: 1 | Зарегистр. 10-04-2010 | Отправлено: 13:19 10-04-2010
    wolf0425



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

    Цитата:
    о нужно чтоб работало именно через объявление переменной - путь запуска из текущей директории  
    кстати, а зачем переменную вводишь, если используешь в немодифицированном виде?

    Код:
    start "Foxit" /wait "%~dp0FoxitReader321_enu.msi" /quiet /qn  
    ...
    DEL /F /S /Q "%~dp0*" & exit


    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 13:22 10-04-2010 | Исправлено: wolf0425, 13:29 10-04-2010
    mugil_cephalus

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

    Цитата:
    без понятия. тебе интересно - ты и проверяй  

    уже проверял то, - не пашет, но подумал, что так как в парадигме научного миропознания сущетсвует максима примата дедуктивной методы над индуктивной, может ты где вычитал в book'e...

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

    взаправду, неверится...

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:26 10-04-2010
    duh_S

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

    Всего записей: 66 | Зарегистр. 28-08-2007 | Отправлено: 13:57 10-04-2010
    ivn1978



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

    Всего записей: 192 | Зарегистр. 25-01-2010 | Отправлено: 14:09 10-04-2010 | Исправлено: ivn1978, 17:25 19-04-2010
    mugil_cephalus

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

    Цитата:
    какое значение здесь имеет символ "1"  

    введи в консоли hh ntcmds.chm::/redirection.htm

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:23 10-04-2010 | Исправлено: mugil_cephalus, 18:53 13-04-2010
    wolf0425



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

    Цитата:
    Можно только пояснить, какое значение здесь имеет символ "1" Уровень?
    1>nul это перенаправление в нуль стандартного потока вывода. добавлено чтобы поиск ничего не печатал в консоль. Можно и убрать, если хочешь профильтрованный результат печати скрипта  видеть в консоли.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:51 10-04-2010
    rovergor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите батник чтобы он проверял размер файла (равно 0 или больше), если равно 0 запуск exe файла, если нет копирует файл с 0 размером в нужное место и потом запуск exe файла.

    Всего записей: 303 | Зарегистр. 29-05-2009 | Отправлено: 23:36 10-04-2010
    gryu



    дикий гусь
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Чёрт. Задёрганый я какой то стал.  
    Сейчас глянул в топе, оказаться что тут потёр и благодарность.  
    Спасибо. Работает. Пока, временно "курю бамбук", так так вынужден оставить пока этот вопрос и переключится на более срочный.  
    Спасибо.

    Всего записей: 13025 | Зарегистр. 15-03-2006 | Отправлено: 00:06 11-04-2010
    JekaKot



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть батник (спасибо Bladru, помог)

    Код:
     
    @echo off
    reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE |find "AMD64" >NUL
    IF errorlevel 0 (
    start "" /D"%~dp0AutoCAD2010-x64\AdminImage\" "%~dp0AutoCAD2010-x64\AdminImage\setup.exe" /qb /I "%~dp0AutoCAD2010-x64\AdminImage\AutoCAD2010-x64.ini" /language ru-ru
    ) ELSE (
    start "" /D"%~dp0AutoCAD2010-x86\AdminImage\" "%~dp0AutoCAD2010-x86\AdminImage\setup.exe" /qb /I "%~dp0AutoCAD2010-x86\AdminImage\AutoCAD2010-x86.ini" /language ru-ru
    )

     
    Еще хотелось бы, чтобы после установки самого AutoCAD последовательно устанавливались еще программы (тоже от битности зависящие). Проги разложены по папкам "рядом", т.е.:
     
    AutoCAD2010-x86
    AutoCAD2010-x64
    ПО_1...-x86
    ПО_1...-x64
    ПО_2...-x86
    ПО_2...-x64
     
    Возможность запроса на их установку (на каждую дополнительную программу: "Устанавливать или нет") - было бы вообще шикарно... После завершения всех установок - удаление .log-файлов из %tmp%-а

    Всего записей: 2697 | Зарегистр. 10-03-2006 | Отправлено: 00:17 11-04-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rovergor
    Цитата:
    Подскажите батник чтобы он проверял размер файла (равно 0 или больше), если равно 0 запуск exe файла, если нет копирует файл с 0 размером в нужное место и потом запуск exe файла.  


    Код:
    @echo off
    call :test "filename.ext"
    exit
    :test  
    if not exist %1 echo file not exist & exit
    if %~z1 GTR 0 echo size= %~z1  & rem tyt sam vpiwi 4ego kyda kopirovat'
    program.exe

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 00:43 11-04-2010 | Исправлено: wolf0425, 15:18 11-04-2010
    rovergor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425 Спасибо за код.  
     
    Подскажите еще:
    1. Как сделать чтобы не только команда копирования но и еще несколько соответствующих условию выполнялись после проверки размера файла?
    2. После запуска exe файла остается открытым окно командера, как сделать чтобы оно закрывалось автоматически?
    3. Есть ли возможность запускать командер в скрытом режиме, чтобы не было видно не только исполняемых команд но и самого окна?

    Всего записей: 303 | Зарегистр. 29-05-2009 | Отправлено: 13:44 11-04-2010
    wolf0425



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

    Цитата:
    1. Как сделать чтобы не только команда копирования но и еще несколько соответствующих условию выполнялись после проверки размера файла?  

    Код:
    :test  
    if not exist %1 echo file not exist & exit
    if %~z1 EQU 0 goto :size0
    rem тут
    rem сам
    rem впиши
    :size0
    program.exe  

    Цитата:
    2. После запуска exe файла остается открытым окно командера, как сделать чтобы оно закрывалось автоматически?  
    Ну да, ждет окончания выполнения программы.
    А что - программа гуевая и ждать не надо? запуск заменяешь на
    Код:
    start "" "program.exe"  

     

    Цитата:
    3. Есть ли возможность запускать командер в скрытом режиме, чтобы не было видно не только исполняемых команд но и самого окна?  
    тебе вроде пока не нужно - окно мелькает на доли секунды, если завершения program.exe не ждать.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:14 11-04-2010 | Исправлено: wolf0425, 15:22 11-04-2010
       

    Страницы: 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru