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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    SANIOK_AV



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

    Цитата:
    http://forum.ru-board.com/topic.cgi?forum=35&topic=24015#1  
    Насчёт шифровки не уверен.

    спасибо...
    но в первую очередь у меня не получается чтоб для runas пароль автоматом передавался...(((

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 10:24 16-09-2009
    222222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья, нужна быстрая и квалифицированная помощь. В файле C:/first.bat записано:

    Код:
     
    start D:/second.bat
     

    В файле D:/second.bat записано:

    Код:
     
    program.exe
     

    Программу program.exe можно найти в D:/program.exe. Запускаю C:/first.bat — появляется окно системного обработчика ошибки и пишет, что не могу найти program.exe. Я догадываюсь, что program.exe ищется не на диске D:/ а на C:/. В second.bat я не могу задать полный путь, надо именно чтоб в том же каталоге прога запускалась. А "тот же каталог" почему-то C:/. Так вот вопрос: как сделать чтоб при вызове батника из батника в дочерний передавался как текущий путь путь дочернего батника.Проще говоря как запустить program.exe, не меняя second.bat?

    Всего записей: 138 | Зарегистр. 09-08-2004 | Отправлено: 20:03 16-09-2009 | Исправлено: 222222, 20:07 16-09-2009
    Taciturn

    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    222222
    В начало second.bat дописать

    Код:
    cd /d %~dp0

    Всего записей: 2014 | Зарегистр. 26-07-2003 | Отправлено: 20:20 16-09-2009
    01MDM



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

    Код:
     
    %~dp0program.exe
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:22 16-09-2009
    222222



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

    Цитата:
    Проще говоря как запустить program.exe, не меняя second.bat?


    Всего записей: 138 | Зарегистр. 09-08-2004 | Отправлено: 23:38 16-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    222222
    Из первого батника перейди в папку со вторым батником

    Код:
     
    cd /d D:\
    :: или просто
    D:
    start 2.bat
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:45 16-09-2009
    222222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Спасибо, метод помог в решении проблемы.

    Всего записей: 138 | Зарегистр. 09-08-2004 | Отправлено: 00:01 17-09-2009
    222222



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

    Код:
    cd F:\1\1\1\1\1\
    demo.exe

    Приложение находится по адресу F:\1\1\1\1\1\demo.exe, батник — F:\1\1\1\1\1\xbatch.bat. Батник, вроде, должен автоматически закрыться, что и происходит с другими приложениями, но не с этим. Явно загвоздка в проге. Но в проге копаться не хочу. Какую команду дописать, чтоб закрыть батник принудительно?
     
    Добавлено:
    Дописал pause третьей строкой в батник, но надписи "нажми кнопку" нет. Видно в проге дело. Батник на проге останавливается:
    Код:

     
    F:\1\1\1\1\1>cd F:\1\1\1\1\1\
     
    F:\1\1\1\1\1>demo.exe
     

    Всего записей: 138 | Зарегистр. 09-08-2004 | Отправлено: 12:44 17-09-2009 | Исправлено: 222222, 13:14 17-09-2009
    wolf0425



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

    Цитата:
    Батник, вроде, должен автоматически закрыться,
    Не знаю кто кому что должен - у меня вот батники запущенные через start тоже сами по умолчанию не закрываются, пришлось для таких батников дописать в конец exit 0
    но батники и так завершались - висел промпт смд.
     

    Цитата:
    Батник на проге останавливается:
    ну видимо прога и держит. если хочешь чтоб батник не ждал ее окончания, а дошел до конца - запускай ее через start
     
    а зачем настолько сложная система с последовательным запуском батников?
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 13:19 17-09-2009 | Исправлено: wolf0425, 13:20 17-09-2009
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    добрый день  
     
    подскажите пример какой нить как переименовать 1024 файлов с именами
    tile_1_1.jpg
    tile_1_2.jpg
    tile_1_3.jpg
    ...
    tile_1_1024.jpg
     
    на 1 назад
     
    tile_1_1.jpg должен быть tile_1_0.jpg
    tile_1_2.jpg должен быть tile_1_1.jpg
    ...
    tile_1_1024.jpg должен быть tile_1_1023.jpg
     
     
     
    for %%I in (путь\*.jpg) do ren "путь\%%~nxI" "%%~nI.jpg"   как единицу отнять
     
    заранее благодарен

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 15:48 17-09-2009 | Исправлено: JohnRD, 16:41 17-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JohnRD
    Не проверял, где-то так:

    Код:
     
    @echo off
    setlocal
    for /f "tokens=1-4 delims=_." %%1 in ('dir /b *.jpg') do call:ren "%%1" "%%2" "%%3" "%%4"
    goto:eof
     
    :ren
    set /a num=%~3-1
    ren "%~1_%~2_%~3.%~4" "%~1_%~2_%num%.%~4"
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:56 17-09-2009 | Исправлено: 01MDM, 17:57 17-09-2009
    GRom V

    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть ли способ удалять файлы ТОЛЬКО БЕЗ РАСШИРЕНИЙ. Т.е естькуча файлов, среди них 234, wer, и еще с десяток так же без расширений?

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 09:07 18-09-2009
    01MDM



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

    Цитата:
    Есть ли способ удалять файлы ТОЛЬКО БЕЗ РАСШИРЕНИЙ

    Рекурсивно удаляет файлы без расширений. С проверкой, что это файл, а не директория:

    Код:
     
    @echo off
    for /f "tokens=*" %%i in ('dir /b /s /a-d') do (
        if exist "%%~dpni" (
            2>nul pushd "%%~dpni" && popd || del /q "%%~dpni"
        )
    )
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:31 18-09-2009 | Исправлено: 01MDM, 09:49 18-09-2009
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
     
    спасибо огромное, все очень красиво!

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 09:50 18-09-2009
    GRom V

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

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 09:55 18-09-2009 | Исправлено: GRom V, 10:04 18-09-2009
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GRom V
    Посмотри, я изменил первоначальный батник. Как понял, тебе надо удалять файлы из подкаталогов тоже, т.к больше одного "ver" в одном каталоге не бывает.
     

    Цитата:
    Непредвиденное появление: %%i.  

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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:01 18-09-2009 | Исправлено: 01MDM, 10:04 18-09-2009
    kikozz



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Комрады,заранее сорри . Не силен в командной строке.
     
    Есть одноранговая сеть,со статическими IP на WinXP.Есть комп с админскими правами и юзерские рабочие станции с ограниченными правами.
    Нужно с админского компа:
    а) Проверить доступность машин.
    б) Удалить папки или файлы со всех машин.
    в) Скопировать папки или файлы на все машины.
    с) Синхронизировать время на всех компах по машине админа.
    Заранее благодарен за ответы.

    Всего записей: 231 | Зарегистр. 02-06-2006 | Отправлено: 13:47 18-09-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а) Проверить доступность машин.  
    организовать цикл и пропинговать по файлу-списку или номерам ip
    б) Удалить папки или файлы со всех машин.
    если админский пароль на всех машинах одинаков и c$ шарится - взять и удалить.  
    желательно - после проверки на пингуемость, чтоб не тормозить на выключенных.
    ping -n 1 192.168.0.NN && rd /q/s \\192.168.0.NN\c$\dokuments\папка
    в) Скопировать папки или файлы на все машины.  
    аналогично б
    с) Синхронизировать время на всех компах по машине админа.  
    если точность до ~секунды устраивает - то что-то типа
    psexec \\192.168.0.NN -s cmd /c time %time%
     
    192.168.0.NN во всех записях это или ip адрес или сетевое имя компа из первого пункта, подставляются из переменной цикла...
     
    т.е. в сумме чего-то типа
     

    Код:
    for /f %%a in (comp.lst) do call :_proc %%a
    goto :eof
     
    :_proc
    ping -n 1 %1 >nul||echo computer %1 not respond && goto :eof
    rd /q/s \\192.168.0.NN\c$\tempfiles
    copy /b /y c:\alldocuments\telefones.xls \\%1\c$\documents\
    psexec \\%1 -s cmd.exe /c time %time%
    goto :eof

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 18:11 18-09-2009 | Исправлено: wolf0425, 11:22 19-09-2009
    egor23



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off
    nz.exe x arhive.nz
     
    Выводится:

    Цитата:
    NanoZip 0.07 alpha/Win32 - (C) 2008-2009 Sami Runsas - www.nanozip.net
    Host: ...

    Есть ли возможность подавить вывод этих строк?
    http://nanozip.net/nanozip.0.07a.win32.zip

    Всего записей: 3832 | Зарегистр. 03-11-2003 | Отправлено: 18:54 18-09-2009
    sL4yer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите, как записать в переменную результат работы команды?
     
    set DIRECTORY=C:\FILES
    set EXT=.exe
     
    for %%i in (*%EXT%) do (
      if exist %DIRECTORY%\%%i && set C=1
      set name=echo %%i|sed s/%EXT%//
      echo %name%
    )
     
    То есть, мне нужно взять имя файла без расширения из директории и записать его в переменную.

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 19:00 18-09-2009
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru