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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а R:\ - это флешка?  

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:07 03-03-2010
    SemGemdgi



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, подскажите.
     
    Есть такой батник, выполняющийся при входе в систему, в нем написано прим.следующее:
     
    if %username%==vasya (net use l: \\it-1\buh\buh)
     
    Он подключает определённым пользователям общую папку, например бухов. Так вот вопрос в следующем, можно ли как-то сделать так, что бы не прописывать каждого на общую папку, а указать группу типа: "если юзер является членом группы такой-то, подключить то-то" ? Есть такое, а то каждого писать, поломается клавиатура

    Всего записей: 452 | Зарегистр. 01-09-2006 | Отправлено: 16:49 03-03-2010 | Исправлено: SemGemdgi, 16:50 03-03-2010
    01MDM



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

    Цитата:
    и чем это должно помочь, кроме того что батник встанет и спросит пароль от текущего юзера?  

     
    У меня ничего не спрашивает, запускает по времени указанном в задании.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:08 03-03-2010
    Cheerful_a_bear



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

    Цитата:
    а R:\ - это флешка?  

    R и Q диски сетевые, смонтированы как локальные диски.
     

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



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

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

    ну попробуй через пару поисков пропустить вывод net user %username%
     
    еще варианты - делать не через проверку принадлежности к группам домена, а через проверку самого наличия прав на доступ в \\it-1\buh\buh или через проверку наличия юзера в текстовом списке, лежащем например в \\it-1\buh\buh\users.txt
     
     
    Добавлено:
    Cheerful_a_bear
    Цитата:
    R и Q диски сетевые, смонтированы как локальные диски.  

    в том варианте что приведен - при отключении диска r:\ тест на даты файлов и удаление старых молча происходит в текущем каталоге.
    pushd "R:\" на всякий случай поменяй на  
    pushd "R:\" || (echo NO DISK & pause & goto:eof)
     

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



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

    Цитата:
    четвертый-----------------пятый, отличаются только буквой диска
    @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
    ....  

    Во-первых, popd - никогда не выполнится, во-вторых, я бы добавил ещё setlocal disabledelayedexpansion
    А в третьих - что значит - "пропадает rar" и когда он перестаёт работать???

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:17 04-03-2010
    Cheerful_a_bear



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

    Цитата:
    Во-первых, popd - никогда не выполнится, во-вторых, я бы добавил ещё setlocal disabledelayedexpansion
    А в третьих - что значит - "пропадает rar" и когда он перестаёт работать???  

     
     
    Простите не понятно...
    Но выполняется... удаляет файлы старше 40-ка дней.
    Файл rar.exe пропадает, и бак файл вываливается в ошибку.. типа команда не является командой dos или типа того...

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



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

    Цитата:

    Цитата:
    Во-первых, popd - никогда не выполнится, во-вторых, я бы добавил ещё setlocal disabledelayedexpansion
    А в третьих - что значит - "пропадает rar" и когда он перестаёт работать???  

    Простите не понятно...  

    POPD идёт после после goto :EOF
    соответственно, никогда не выполнится.
    В начале bat-ника есть setlocal enabledelayedexpansion
    По логике, надо в конце его включить - т.е. сделать setlocal disabledelayedexpansion
     

    Цитата:
    Файл rar.exe пропадает, и бак файл вываливается в ошибку.. типа команда не является командой dos или типа того...

    После какого из bat-ников он "пропадает"?
    Физически rar.exe остаётся в той папке, где он был (в F:\BAT-FILES\)?

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:58 04-03-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    Значит где-то происходит смена рабочей директории. Прописывай не rar.exe, полный путь F:\BAT-FILES\RAR.EXE

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:28 04-03-2010
    Cheerful_a_bear



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

    Цитата:
    Значит где-то происходит смена рабочей директории. Прописывай не rar.exe, полный путь F:\BAT-FILES\RAR.EXE

     
    Да видимо Вы правы... Проверю...

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off
    rem 1) set all=set
    for /r %%d in (.) do (
        cd %%d
        if exist *.m3u del *.m3u
        rem 2) set all=set
        for %%f in (*.mp3) do (
        rem 3) set all=set
        echo %%f >> %All%.m3u
        )    
    )
     
     
    Подскажите пожалуйста, почему set all=set работает только в первом случае, а во втором и третьем не хочет. И как заставить работать ее в цикле фора?

    Всего записей: 3 | Зарегистр. 05-03-2010 | Отправлено: 14:00 05-03-2010 | Исправлено: EN286, 14:01 05-03-2010
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EN286
    Используй setlocal enabledelayedexpansion и обращайся к переменной !All!, а не %All%.

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 14:36 05-03-2010
    EN286

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joo1z, огромное спасибо!
     
    Сделал наконец что б плейлисты по имени папок создавались=)
     
     
    @echo off
    setlocal enabledelayedexpansion
     
    for /r %%d in (.) do (
        cd %%d
        Set foldername=!%%d!
        For /D %%a In ("!foldername:~0,-2!") Do Set foldername=%%~na
        if exist *.m3u del *.m3u
        for %%f in (*.mp3) do echo %%f >> !foldername!.m3u
        )
     
    Добавлено:
    Как такой скрипт заставить создавать плейлист в каждом каталоге, в котором будут песни и из подкаталогов тоже?
     
    По идее один цикл должен заходить в каталог в котором будет создан плейлист, второй цикл собирать в плейлист все файлы этого каталога и следующего. По завершению второго цикла, первый переходит на каталог ниже и тд.. но вот как реализовать что б все работало? =\

    Всего записей: 3 | Зарегистр. 05-03-2010 | Отправлено: 16:03 05-03-2010 | Исправлено: EN286, 17:59 05-03-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Объясните пожалуйста, как пользоваться следующими программами
    zip.exe - создает zip-архивы
    unzip.exe - распаковывает zip-архивы
    http://webfile.ru/4341742
    У меня ни как не выходит сделать чтобы они заработали

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:54 05-03-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    lorents
    Может, я не прав, но мне кажется, подобные вопросы имеет смысл задавать где-то здесь.

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 00:24 06-03-2010
    wolf0425



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

    Цитата:
    zip.exe - создает zip-архивы
    unzip.exe - распаковывает zip-архивы  
    а нафига тебе с этой древностью разбираться?
    Если надо запаковать - используй 7z, почитав справку.

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



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

    Цитата:
    Может, я не прав, но мне кажется, подобные вопросы имеет смысл задавать где-то здесь.

    возможно, просто эти программы работают через командную строку, подумал что лучше спросить здесь
     
    wolf0425

    Цитата:
    а нафига тебе с этой древностью разбираться?  

    просто нужны программы которые распаковывают и архивируют только zip

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 09:41 06-03-2010
    wolf0425



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

    Цитата:
    нужны программы которые распаковывают и архивируют только zip
    а в чем смысл такого ограничения?
     
    посмотрел я на программы в твоем архиве  - оказалось поделки инфозипа, скомпиленные хз кем.
    А какие проблемы у тебя с паковкой/распаковкой? Список ключей они исправно печатают, на ошибки в ключах ругаются вменяемо, zip.exe -r 123 * успешно запаковал текущий каталог с подкаталогами.  
    В чем сложность то?
     
    зы: архиватор не поддерживает символы «quotes» в имени. точнее - в архив лепит одинарные уголки

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:45 06-03-2010 | Исправлено: wolf0425, 13:39 06-03-2010
    lorents



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

    Цитата:
    посмотрел я на программы в твоем архиве  - оказалось поделки инфозипа, скомпиленные хз кем.  

    скомпилированы мною
    мне просто надо архивироваться содержимое одной папки, но не саму папку (с максимальной степенью сжатия)
    и так же распаковать в определенную папку все содержимое zip-архива
    вот у меня это ну ни как не выходит?
    подскажите пожалуйста, что Вы прописывали в командной строке?

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 15:26 06-03-2010
    XoMaiK



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с решением задачи, возможно она уже решалась.
    Есть файл *.md5, который содержит md5 сумму и путь к файлу. Пример:

    Код:
     
    70f6d7fe5c1ef556ef5eed7143b4b859 *sources\dlmanifests\accessibilitycpl-dl.man
    901595703489cbf71f5c8b95915203a9 *sources\actionqueue.dll
    bed861f61182f8a226ba3fe2cbe94fad *sources\ru-ru\actionqueue.dll.mui
    e0a4d8f3ebf6ad95fff769f8e4f60f68 *sources\etwproviders\actionqueueetw.dll
    e0a4d8f3ebf6ad95fff769f8e4f60f68 *support\logging\actionqueueetw.dll
     

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

    Всего записей: 151 | Зарегистр. 08-09-2008 | Отправлено: 15:54 06-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