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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Hanniball



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

    Всего записей: 108 | Зарегистр. 15-05-2007 | Отправлено: 10:24 24-04-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lexx
    set /p "input=  Введите выражение: "
    Hanniball
    на что исправить?

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 10:40 24-04-2008
    igor_andreev

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

    Цитата:
    А можно ли сделать так, чтобы батник сортировал картинки разных разрешений по папкам?  
    Допустим, картинки 1024x768 в папку normal, 1280x1024 в папку big и т.д.  

    Тебе нужна консольная утиль, показывающая размеры картинки nconvert или jhead
    http://pagesperso-orange.fr/pierre.g/xnview/en_ncdownload.html
    http://www.sentex.net/~mwandel/jhead/
    и вставить в цикл FOR(не тестировал) что-то типа:
    jhead картинка | find "нужное разрешение" && move картинку в нужную папку

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 12:22 24-04-2008
    sdaww

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли поменять разрешения у ключей реестра из коммандной строки?

    Всего записей: 85 | Зарегистр. 17-01-2007 | Отправлено: 12:24 24-04-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sdaww
    http://support.microsoft.com/kb/264584

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 13:02 24-04-2008
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sdaww
    В шапке, полезные утилиты "setacl" .
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:26 24-04-2008
    sdaww

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

    Всего записей: 85 | Зарегистр. 17-01-2007 | Отправлено: 14:47 24-04-2008
    Andryha2005

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

    Цитата:
    тип подключения?

    Сетевое подключение к Интернету (через подключенный к компьютеру сотовый), уже создано, нужно только запустить с вышеупомянутой проверкой. А то часто бывает запускаешь соединение, а странички всё равно не грузятся. Ping не проходит. Разрываю соединение, опять подключаюсь. И так пока не заработает.

    Всего записей: 201 | Зарегистр. 09-07-2005 | Отправлено: 18:26 24-04-2008
    Elroir



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

    Цитата:
    в шапке, в полезных ссылках самая первая (Описание от разработчиков) на русском не работает.

    Исправлено

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:48 24-04-2008
    sdaww

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

    Всего записей: 85 | Зарегистр. 17-01-2007 | Отправлено: 09:35 25-04-2008
    Serhi_84

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди, подскажите, пожалуйста, как решить проблему.
     
    Задача - в папке, не содержащей подпапок, лежат файлы. Требуется оставить в этой папке N  самых свежих, а остальные - удалить. В качестве параметров скрипту передаются путь к папке и количество файлов, которые необходимо оставить(N).
     
    Ход мыслей следующий - сначала сортируем файлы по дате:
     FOR /F %%i IN ('dir /b /a-d /o-d %1') DO    (%1 - вводимый путь к папке при запуске скрипта)
     
    Находим общее количество файлов в папке:
    dir /b /a-d /on %1\*.* | find /v /c "*"
     
    И дальше как то  нужно удалить файлы, начиная с порядкового номера 'общее количество - %2'  (%2 - вводимое количество файлов, которые нужно оставить). То есть, наверное, нужно каждому файлу поставить в соответствие номер, и начиная с определенного номера начать удаление.
     
    Вообще реально это батником сделать? На Vbscript начал пробовать, но там проблемы с сортировкой файлов по дате.

    Всего записей: 30 | Зарегистр. 29-02-2008 | Отправлено: 13:42 25-04-2008
    DiMaS_2006



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый день. Пытаюсь сделать фичу: в rightclick на файле создать пункт меню для отправки этого файла в папку на местном фтп-сервере.
    Для этого сделал в реестре в разделе "*" соотв. раздел с командой:
    Код:
    ftp -A -s:C:\000.txt ftp.burnet.ru "%1"

    В 000.txt -
    Код:
    cd incoming
    cd users
    cd DiMaS
    send "%1"

    Как показала практика, "%1" в команде вообще не приемлим, а если запустить без параметра, то команда SEND сообщает, "файл не найден".
    Другими словами, как заставить команду передавать параметр "%1" в батник?

    ----------
    Маленькими шагами к большой цели

    Всего записей: 515 | Зарегистр. 01-08-2006 | Отправлено: 13:51 25-04-2008
    Elroir



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

    Код:
     
    @echo off
    set "N=10"
    for /f "skip=%N% tokens=*" %%a in ('dir /b /a-d /o-d %1') do del /q "%~1\%%a"
     

     
     
    Добавлено:
    DiMaS_2006
    О каком батнике идет речь? В твоем описании я не увидел ни одного.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:53 25-04-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DiMaS_2006
     
    Убери кавычки вокруг %1 или используй "%~1" (в кавычках)
    У тебя получается файл, заключенный в кавычки дважды.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:59 25-04-2008
    DiMaS_2006



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    Не помогло. То же, если вообще убрать параметр, то идет.
    Elroir
    Изначально делал батник с содержанием текстового файла, т.е.
    Код:
    ftp -A ftp.burnet.ru
    cd incoming  
    cd users  
    cd DiMaS  
    send "%1"
    Смысл вроде тот же.

    ----------
    Маленькими шагами к большой цели

    Всего записей: 515 | Зарегистр. 01-08-2006 | Отправлено: 14:07 25-04-2008 | Исправлено: DiMaS_2006, 14:08 25-04-2008
    Serhi_84

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, спасибо большое, забыл что есть skip)))

    Всего записей: 30 | Зарегистр. 29-02-2008 | Отправлено: 14:14 25-04-2008
    01MDM



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

    Код:
     
    @echo off
     
    echo cd incoming>"C:\000.txt"
    echo cd users>>"C:\000.txt"  
    echo cd DiMaS>>"C:\000.txt"  
    echo send %1>>"C:\000.txt"
     
    ftp -A -s:C:\000.txt ftp.burnet.ru
     

     
    В реестре вызывай батник, а не ftp.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:23 25-04-2008 | Исправлено: 01MDM, 14:25 25-04-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DiMaS_2006
    Создавай батник следующего содержание и прописывай в реестр с параметром "%L":

    Код:
     
    @echo off
    cd /d "%~dp1"
    echo cd incoming>"C:\000.txt"  
    echo cd users>>"C:\000.txt"
    echo cd DiMaS>>"C:\000.txt"
    echo send "%~1">>"C:\000.txt"
    ftp -A -s:C:\000.txt ftp.burnet.ru
     

     
    Добавлено:
    01MDM
    Торопишься . Проверяй код.
     
    Добавлено:
    Уже исправил

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:24 25-04-2008 | Исправлено: Elroir, 14:27 25-04-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Забыл, бывает. Вот про %L совсем не подумал

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:32 25-04-2008
    DiMaS_2006



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Все прописал, но cmd зависает на месте команды
    Код:
    SEND "C:\Documents and Settings\Дима\Рабочий стол\11.txt"
    Понял, что дело в русских буквах в пути, (из С:\Distrib, к примеру, уходит нормально). В логе как раз прописывается корявый путь
    Код:
    send "C:\Documents and Settings\„Ё¬ \ђ Ў®зЁ© бв®«\111.txt"  
    , оттого и подвисает. Что с этим делать? (по задумке, хотелось прямо со стола отправлять)

    ----------
    Маленькими шагами к большой цели

    Всего записей: 515 | Зарегистр. 01-08-2006 | Отправлено: 14:57 25-04-2008 | Исправлено: DiMaS_2006, 15:06 25-04-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru