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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    mugil_cephalus

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

    Цитата:
    уговорил. не от непарной а от нечетной.  

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


    Цитата:
    Если rar не позволит вписать ключ пароля последним в строку и не согласится взять пароль из stdin - то никак  
     

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

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 17:29 26-02-2010 | Исправлено: mugil_cephalus, 19:20 26-02-2010
    vov4ka



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    mugil_cephalus, ссылка битая,но ничего,сам в инете найду.Спасибо большое!

    Всего записей: 110 | Зарегистр. 29-01-2009 | Отправлено: 19:27 26-02-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    infopolis
    for %%i in ("%cd%") do echo %%~nxi

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 21:08 26-02-2010
    wolf0425



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

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

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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 01:46 27-02-2010
    vlad777 ok

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425, спасибо! Нормально работает. Еще скомпилил с помощью Quick Batch File Compiler - совсем здорово получилось.

    Всего записей: 2 | Зарегистр. 26-02-2010 | Отправлено: 06:46 27-02-2010
    mugil_cephalus

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

    Цитата:
    mugil_cephalus, ссылка битая,но ничего,сам в инете найду.Спасибо большое!

    этого не может быть потому что:
    1) сам только что ее проверил
    2) она взята из шапки - http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=0
    3) уже сотни скачек были - никто не жаловался
    p.s.
    в ПМ отправил Уильям Станек - Командная строка Microsoft Windows в формате *.chm (на english'e )
     
    Добавлено:
    wolf0425
    для визуализации своей сентенции "закодировал" свою мысль:

    Код:
    echo %~f0
    echo %1
    echo %2
    @REM 3rd quote without pair
    echo %3
    pause

    имплементация:
    G:\scripts\test>file.bat "1st 1st" "2nd 2nd" 3rd"3rd 3rd                     3rd
     
    G:\scripts\test>echo G:\scripts\test\file.bat
    G:\scripts\test\file.bat
     
    G:\scripts\test>echo "1st 1st"
    "1st 1st"
     
    G:\scripts\test>echo "2nd 2nd"
    "2nd 2nd"
     
    G:\scripts\test>echo 3rd"3rd 3rd                     3rd
    3rd"3rd 3rd                     3rd
     
    G:\scripts\test>pause
    Для продолжения нажмите любую клавишу . . .
    ты это имел ввиду
    Цитата:
    до конца строки - это все один слитный блок, невзирая на пробелы,


    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:07 27-02-2010
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ктонить подскажите в командной строке (Винда7) пишу:
     
    schtasks /create /tn run /tr "C:\Program Files\Total Commander\Utilites\Opera\opera.exe" /sc ONCE /st 19:13 /ru user /rp pass  
     
    Задача не выполняется: ошибка 2147942402

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 11:00 28-02-2010
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:22 28-02-2010
    GRom V

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

    01MDM

    Цитата:
    GRom V  
    Убери /ru  и /rp

    И с какой стати это убрать???
    Тогда ошибка:
    Неправильный параметр или аргумент - user

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 14:10 28-02-2010 | Исправлено: GRom V, 14:11 28-02-2010
    V2driver



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вобщем нужно реализовать такой батник - по массовому переименовыванию файлов...
    Поясню: вобщем имеется папка а вней wav файлы, но у них перед названием есть номер.. тоесть вот пример.
    1 EN_TUT_EVENT2_NEW_01_PC.wav
    2 RU_TAK_ACHIEVE4_02C.wav
    3 RU_TOD_ACHIEVE2_02B.wav
    4 RU_CLY_GOESTOLAST_01C.wav
    И так у меня доходит нумерация до 2138.
    Как видно нумерация идёт по порядку на название кажого файла разная..
    Мне нужен такой батник который бы убалял номер перед названием!!!
    Тоесть чтобы получилось так:
    EN_TUT_EVENT2_NEW_01_PC.wav
    RU_TAK_ACHIEVE4_02C.wav
    RU_TOD_ACHIEVE2_02B.wav
    RU_CLY_GOESTOLAST_01C.wav
    Помогите пожалуйста, яя уже незнаю где копать, пол инета перерыл((
    Спасибо

    Всего записей: 462 | Зарегистр. 01-02-2010 | Отправлено: 14:43 28-02-2010
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Убери эти параметры (/ru и /rp):

    Код:
     
    schtasks /create /tn run /tr "C:\Program Files\Total Commander\Utilites\Opera\opera.exe" /sc ONCE /st 19:13
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:59 28-02-2010
    Myster

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V2driver
     
    for /f "usebackq delims=" %%f in ( `dir /S /B /A-D ".\*.wav"` ) do (
        for /f "tokens=2* delims= " %%i in ( "%%~nxf" ) do (
            ren "%%f" "%%i"  
        )
    )

    Всего записей: 6 | Зарегистр. 09-04-2002 | Отправлено: 17:39 28-02-2010 | Исправлено: Myster, 17:40 28-02-2010
    GRom V

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

    Цитата:
    GRom V  
    Убери эти параметры (/ru и /rp):  
     
    Код:  
    schtasks /create /tn run /tr "C:\Program Files\Total Commander\Utilites\Opera\opera.exe" /sc ONCE /st 19:13

       
    Но мне нужно создать задачу от имени- user и пароль его - pass
     
    И интересно то, что C:\Program - записывается в программа или сценарий, а остальное Files\Total Commander\Utilites\Opera\opera.exe - записывается в аргументы!!! Почему путь до файла делится и записывается не полностью. Ведь кавычки стоят???
     
    Добавлено:
    01MDM
    С кавычками разобрался...получилось так:
    schtasks /create /tn запуск2 /ru User /rp pass /tr "'C:\Program Files\Total Commander\Utilites\Opera\OperaLauncher.exe'" /sc ONCE /st 10:06
     
    Процесс появляется, но самого окна нет! Почему???

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 02:56 01-03-2010 | Исправлено: GRom V, 03:36 01-03-2010
    Statr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как узнать день недели в батнике?
     
    1. Вариант, используем vb

    Цитата:
     
    echo wscript.echo WeekDay("%date%", 2)>"%temp%.\WeekDay.vbs"
    for /f %%a in ('cscript "%temp%.\WeekDay.vbs" //nologo') do set nWeekDay=%%a
     
    echo wscript.echo WeekDayName(WeekDay("%date%"))>"%temp%.\WeekDay.vbs"
    for /f %%a in ('cscript "%temp%.\WeekDay.vbs" //nologo') do set sWeekDay=%%a
     
    del "%temp%.\WeekDay.vbs">nul
     
    echo Сегодня %sWeekDay% (%nWeekDay% день недели), %date% %time:~0,8%
     

     
    2. Вариант, используем .com

    Цитата:
     
    echo E 0100 B4 2A CD 21 B4 4C CD 21>%temp%.\WeekDay.scr
    for %%a in (NWEEKDAY.COM RCX 0008 W Q) do echo %%a>>%temp%.\WeekDay.scr
    debug<%temp%.\WeekDay.scr>nul
    del %temp%.\WeekDay.scr>nul
     
    weekday.com
    set /a nWeekDay=%errorlevel%+1
    del weekday.com>nul
     
    if %nWeekDay% equ 1 (set /a nWeekDay=7) else (set /a nWeekDay=nWeekDay-1)
    for /f "tokens=%nWeekDay%" %%a in ( "monday tuesday wednesday thursday friday saturday sunday" ) do set sWeekDay=%%a
    echo Today %sWeekDay% (%nWeekDay% day of week), %date%  %time:~0,8%
     


    Всего записей: 2 | Зарегистр. 14-04-2006 | Отправлено: 16:10 01-03-2010 | Исправлено: Statr, 16:11 01-03-2010
    Ykidia



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Снова здравствуйте!
    Такая задача: в папке I386 установочного диска Windows есть много файлов, пожатых cab-ом с расширением ??_ (например, DL_, EX_ и т.д.). Нужно:
    1) Выявить, у каких файлов имя архива (с расширением ??_) отличается от имени распакованного файла (к примеру, файл AZRLPIA.DL_ содержит в себе microsoft.interop.security.azroles.dll).
    2) Распаковать все такие файлы (с расширением ??_) с тем же именем, что и у архива (например, тот же AZRLPIA.DL_ распаковать как AZRLPIA.DLL)
    Было бы неплохо, чтобы это можно было проделать и для подкаталогов, но это уже не так важно).
     
    Спасибо.

    Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 18:39 01-03-2010 | Исправлено: Ykidia, 18:40 01-03-2010
    01MDM



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

    Цитата:
    С кавычками разобрался...получилось так:
    schtasks /create /tn запуск2 /ru User /rp pass /tr "'C:\Program Files\Total Commander\Utilites\Opera\OperaLauncher.exe'" /sc ONCE /st 10:06
     
    Процесс появляется, но самого окна нет! Почему???

     
    Я же написал:

    Цитата:
     
    Убери эти параметры (/ru и /rp):  
     
    Код:  
    schtasks /create /tn run /tr "C:\Program Files\Total Commander\Utilites\Opera\opera.exe" /sc ONCE /st 19:13  

     
     
     
    Добавлено:
    Statr
    Проще всего с помощью wmic:

    Код:
     
    @echo off
    setlocal
     
    for /f "tokens=2 delims==" %%i in ('wmic path win32_LocalTime get DayOfWeek /value') do set /a tok=%%i+1
    for /f "tokens=%tok%" %%i in ("Sun Mon Tue Wed Thu Fri Sat") do echo Today is %%i  
     

     
    И не надо временных файлов.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:19 02-03-2010 | Исправлено: 01MDM, 21:37 02-03-2010
    wolf0425



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

    Цитата:
    Я же написал:
    Убери эти параметры (/ru и /rp):    
    и чем это должно помочь, кроме того что батник встанет и спросит пароль от текущего юзера?
     
    Целью то похоже является запуск программы с правами юзера, отличного от текущего залогиненного, со вводом логина/пароля из батника.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 08:07 03-03-2010 | Исправлено: wolf0425, 08:21 03-03-2010
    Cheerful_a_bear



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую народ.
    Проблемка есть. пропадает файл rar.exe после выполнения всех скриптов
     
    первый------------
    @echo off  
    rar.exe a -r -m5 -agdd-mm-yyyy -y r:\Архив_NAS_.rar  "\\192.168.10.11\media\"
    pause
    ---------------------
     
    второй-------------
    @echo off  
    chcp 866 > nul  
    Echo Удаление устаревших архивов  
    call F:\BAT-FILES\R.bat  
    call F:\BAT-FILES\Q.bat  
    rar.exe a -r -m5 -agdd-mm-yyyy -y Q:\Архив_за_.rar  "F:\Сохранение 1С\"
    rar.exe a -r -m5 -agdd-mm-yyyy -df -y R:\Архив_за_.rar  "F:\Сохранение 1С\"
    pause
    ----------------------
     
    третий---------------
    @echo off
    rem Сохранение 1cv8
    rem Создание каталога для сохранения
     
    "c:\Program Files\1cv81\bin\ragent.exe" -stop
    "C:\Program Files\1cv81\bin\ragent.exe" -start
     
    rem Сохранение Бухгалтерия 2010
    "c:\Program Files (x86)\1cv81\bin\1cv8.exe" Config /Smo1srv02\buhgalteria2010 /DepotNййй /DepotP 111/Nййй /P111 /Out"F:\Сохранение 1С\8\Log1Cv8.txt" /DumpIB"F:\Сохранение 1С\8\1Cv8-.dt"
     
    "c:\Program Files\1cv81\bin\ragent.exe" -stop
    "C:\Program Files\1cv81\bin\ragent.exe" -start
    ------------------------
     
    четвертый-----------------пятый, отличаются только буквой диска
    @echo off
    setlocal enabledelayedexpansion
    set N=40
     
    call :raschet %date% days_to_today
     
    pushd "R:\"
    for /f "tokens=*" %%a in ('dir /b *.*') do (
       set filedate=%%~ta
       call :raschet !filedate:~0,10! days_to_date_of_file
       set /a raznitsa=%days_to_today%-!days_to_date_of_file!
       if !raznitsa! gtr %N% del /q "%%a"
    )
    goto :eof
    popd
     
    :raschet
    for /f "delims=. tokens=1-3" %%a in ('echo %~1') do (
     
       set /a years=%%c*365+%%c/4
       set /a prev_year=%%c-1
       set /a result_year=%%c/4
       set /a result_prev_year=!prev_year!/4
       set /a vis=!result_year!-!result_prev_year!
       if !vis!==1 (
          if %%b==01 set /a years=!years!-1
          if %%b==02 set /a years=!years!-1
       )
     
       if %%b==01 set months=0
       if %%b==02 set months=31
       if %%b==03 set months=59
       if %%b==04 set months=90
       if %%b==05 set months=120
       if %%b==06 set months=151
       if %%b==07 set months=181
       if %%b==08 set months=212
       if %%b==09 set months=243
       if %%b==10 set months=273
       if %%b==11 set months=304
       if %%b==12 set months=334
     
       set days=%%a
       set firstsym=!days:~0,1!
       if !firstsym!==0 set days=!days:~1,1!
     
       set /a %~2=!years!+!months!+!days!
    )
    --------------------------
     
    шестой----------------------
    @echo off
    md f:\111
    Move "\\server\Users-Alex\Share\123456" f:\111
    rar.exe a -r -m5 -agdd-mm-yyyy -m5  -y -d r:\Удаленные_Папка_обмена_за_.rar  "\\server\Share\RecFolder\"
    Move "f:\111\ДОСТАВКА" "\\server\Share\RecFolder\123456"
    MD "\\server\Users-Alex\RecFolder\Сканер\"
     
    -----------------------------
     
     
    В чем проблема не пойму, исчезает файл rar.exe и все останавливается...
    Может из-за того, что несколько батников используют rar.exe в одно и тоже время?

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 13:41 03-03-2010
    wolf0425



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

    Цитата:
    пропадает файл rar.exe после выполнения всех скриптов  
    вопрос на засыпку - а где лежит rar.exe и все эти батники?

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



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

    Цитата:
    а где лежит rar.exe и все эти батники?  

    на сервере на локальном диске F:\BAT-FILES\

    Всего записей: 103 | Зарегистр. 30-04-2008 | Отправлено: 15:42 03-03-2010 | Исправлено: Cheerful_a_bear, 15:44 03-03-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