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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    Drol



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а кто знает команду, которое автоматически закрывает ту или иную программу?
    например подтип такого
     
    close.bat
    ---
    CloseRun mspaint.exe
     
    или  
     
    tskill mspaint.exe
    ---
     
    Мне нужно для того, чтобы при выполнения пользователем Log off. сработал скрипт bat, которая автоматически закрывала программу указзаное мною.

    Всего записей: 69 | Зарегистр. 26-09-2001 | Отправлено: 14:19 17-09-2007 | Исправлено: Drol, 14:22 17-09-2007
    Elroir



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

    Цитата:
    tskill mspaint.exe

    Вот она и закрывает.


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:43 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, возникла задача переместить множество файлов на один уровень вверх, т.е  
     
    исходно файл находится, например в:
      E:\update\17rt\images\crw333.jpg
     
    надо его переместить в  
      E:\update\17rt\crw333.jpg
     
    Таких каталогов около 500 и файлов в них десятки тысяч. Если кто поможет буду благодарен.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 14:56 17-09-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    djdtyfhu
    Какая структура у каталогов? (откуда начинать? идти вглубь или по определенному уровню? и т.д.)  

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:15 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    Стуктура такая:
    E:\update\17rt\image
     
    меняются только названия среднего каталога "17rt", "17uu", "65gg". В этом каталоге всегда 4 символа первые два произвольные цифры, последние два произвольные буквы.
     
    Идеально было бы начать с "Е:\Update", а далее скрипт сам бы прошелся по всем файлам и перенес их на один уровень вверх, но вполне достаточно будет и следующего:
     я сам перехожу в каталог "E:\update\17rt", запускаю скрипт, который просканирует вложенный каталог "E:\update\17rt\image" и перенесет все файлы на один уровень вверх.
     
    P.S. Было бы неплохо если бы это удалось интегрировать в виде кнопки в Total Commander, т.к. там есть возможность передавать в вызываемую программу пути.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:22 17-09-2007
    Drol



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

    Цитата:
    Вот она и закрывает.  

     
    У меня не работает и сообщает - 'tskill' is not recognized as an internal or external command, operable program or batch file.
     
    или сообщает - Для этой программы требуется, чтобы работали службы терминалов.

    Всего записей: 69 | Зарегистр. 26-09-2001 | Отправлено: 15:25 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да и еще каталог IMAGE конечный, далее нет каталогов.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:26 17-09-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    djdtyfhu зачем Elroir структура я не понял - я так думаю что файлы только в каталогах максимальной вложенности, но вот что делать в случае дублирования имен?
    E:\update\17rt\images1\crw333.jpg
    E:\update\17rt\images2\crw333.jpg
     
    если дублирования заведомо нет - всё просто:

    Код:
    @echo off
    for /f "delims=" %%a in ('dir /b /s /a-d *.jpg') do move "%%~fa" "%%~dpa..\%%~nxa"


    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:31 17-09-2007 | Исправлено: wolf0425, 15:53 17-09-2007
    dSasha

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

    Цитата:
    C:\>chcp 1251
    Текущая кодовая страница: 1251
    Ничего не меняется. Как и от cmd/u.  
    По команде write открывается Wordpad. Если имелся в виду формат *.wri , то от расширения ничего не зависит. Или что за write?

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 15:35 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
     
    Дублирования нет, как нет каталогов вида
    E:\update\17rt\images1\
    E:\update\17rt\images2\
    с именем 17rt всегда только один каталог.
     
    Добавлено:
    wolf0425
    Скрипт прекрасно отработал, еще бы добавить, чтобы удалялась папка images. Спасибо.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:35 17-09-2007 | Исправлено: djdtyfhu, 15:49 17-09-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    djdtyfhu а папка что - всегда называется images?
    стоило ж цикл мутить, если ты согласен сам обходить папки...
     
    move images\*.jpg . && rd images
    (выполнять в 17rt)

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:49 17-09-2007 | Исправлено: wolf0425, 15:51 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
     
    Ну так это только для одной директории, а прежний ваш скрипт сразу все директории скопом обработал.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 15:51 17-09-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Вот для того, чтобы сразу прояснить ситуацию, я и спрашивал о структуре.
     
    djdtyfhu
    Вот мой вариант:

    Код:
     
    for /d %%a in (*.*) do (
    pushd "%%a"
    move image\*.* .\
    rd image
    popd
    )
     

    Запускать из директории E:\update.
    Можно сделать версию и для TotalCommander-а. Какую из директорий ты собираешься передавать в качестве параметра (E:\update или одну из вложенных)?  
     
     
    Добавлено:
    Drol
    Попробуй так:

    Код:
    taskkill /f /im mspaint.exe


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:13 17-09-2007 | Исправлено: Elroir, 16:17 17-09-2007
    djdtyfhu



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    Можно сделать версию и для TotalCommander-а. Какую из директорий ты собираешься передавать в качестве параметра (E:\update или одну из вложенных)?  
     
    Да хочу передавать директорию "E:\update"
     
    Добавлено:
    Всем ответившим большое СПАСИБО. Все варианты работают. Сегодня больше не отвечу, пора уезжать.

    Всего записей: 422 | Зарегистр. 28-12-2004 | Отправлено: 16:22 17-09-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    djdtyfhu
    Для TotalCommander-а добавляем две строчки - одну в начало и одну в конец.
    В начало:

    Код:
    pushd "%~1"

    В конец:

    Код:
    popd



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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:42 17-09-2007 | Исправлено: Elroir, 16:43 17-09-2007
    dSasha

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    И всё-таки, кто-нибудь может объяснить, почему через буфер обмена из окна командной строки русский текст нормально копируется в Блокнот, а то же самое через >file.txt в виде крякозябров? Тут в ANSI или UNICODE, а туда в ASCII? Почему? Мне,   , это очень странно.

    Всего записей: 30 | Зарегистр. 15-06-2007 | Отправлено: 05:16 18-09-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dSasha
    С этими кодировками сам черт ногу сломит. Вот как я это понимаю - когда текст в 866-ой кодировке выводится на экран (в консольном окне), ты видишь правильные русские буквы. При этом, когда ты копируешь содержимое консольного окна - оно копируется уже в 1251-ой (Windows) кодировке и, соответственно, никаких проблем с этим текстом нет. А вот когда текст сразу выводится в файл - он так и остается в 866-ой (DOS) кодировке и,  при чтении файла в Windows, ты видишь "крякозябры"  
     
    Добавлено:
    Это все IMHO. Я когда-то пытался разобраться с тем, как работают русские кодировки в Windows, но так и не нашел исчерпывающего ответа на свои вопросы.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 05:40 18-09-2007 | Исправлено: Elroir, 05:41 18-09-2007
    dardreams



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть калькулятор под смд чтобы и целые и десятичные показывал ?

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 07:54 18-09-2007
    Lutvun



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно чтоб батником все файлы из заданой папки перемещялись в другую, за исключением *.DMF и *.DMFr.
    Как лудше сделть?
     
    Добавлено:
    И ищё, как можна запустить прогу на удалённом компе?

    Всего записей: 286 | Зарегистр. 22-11-2005 | Отправлено: 10:13 18-09-2007
    dardreams



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

    Цитата:
    И ищё, как можна запустить прогу на удалённом компе?

    psexec

    Всего записей: 100 | Зарегистр. 29-05-2007 | Отправлено: 10:50 18-09-2007
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru