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

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

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

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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    5peciali5t



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

    Цитата:
    в переменную %~1 передается путь со слешем на конце. Можно от нее отрезать последний символ, не используя промежуточную переменную?

    возможно я чего-то не понял, а чем %cd% не вариант

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 03:05 21-04-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не вариант тем, что батнику передается не текущий путь

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 09:39 21-04-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft кстати, а чем тебе слеш то помешал - переименовывать каталог хочешь, или ещё причину нарыл?
    ну и зачем "без переменных" - тоже непонятно...

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 10:48 21-04-2011 | Исправлено: wolf0425, 10:49 21-04-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    запуск примера 1.cmd из директории D:\RePacks
    @echo off&echo %cd%&PAUSE
     
    возвращает =>
    D:\RePacks
    Для продолжения нажмите любую клавишу . . .

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 12:42 21-04-2011 | Исправлено: 5peciali5t, 12:43 21-04-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    5peciali5t если тебе непонятно почему %cd% не вариант или что значит "в переменную %~1 передается путь" - доработай свой батник для запуска примера
    1.cmd \\server\share1\dir1\
    - чтоб выдавал \\server\share1\dir

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:56 21-04-2011 | Исправлено: wolf0425, 12:59 21-04-2011
    Free_Soft



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

    Цитата:
     чем тебе слеш то помешал

    слеш в конце мешает в команде expand. в пути назначения должен быть указан конечный каталог без слеша в конце, иначе - ошибка.

    Цитата:
    зачем "без переменных" - тоже непонятно...  

    да не принципиально, уже сделал, просто хотел две строчки в батнике сократить

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 13:18 21-04-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    У мелкософта есть такая утилита cabarc - для работы с кабами (упаковка/распаковка), гораздо лучше убогого expanda.
    cabarc входит в состав Suuport Tools для WinXP.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:55 21-04-2011
    king_stiven

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

    Цитата:
    хотел две строчки в батнике сократить

    лучшее враг хорошего

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:56 21-04-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    да я слышал. просто не хотелось файлы плодить... обойтись так сказать, штатными средствами винды.

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 14:49 21-04-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Цитата:
    слеш в конце мешает в команде expand.
    гораздо проще дописать после слеша точку, чем отрезать слеш, expand это замечательно поймет.
    т.е. отрезать - вообще ничего не надо
     
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 15:54 21-04-2011 | Исправлено: wolf0425, 16:01 21-04-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    ну так до такого простого выхода надо же еще додуматься... пасиб

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 16:09 21-04-2011
    Nikoderiko

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, подскажите. как получить имя рабочей папки?
    Не путь, а только имя?

    5peciali5t, спасибо!

    Всего записей: 808 | Зарегистр. 17-07-2002 | Отправлено: 00:49 22-04-2011 | Исправлено: Nikoderiko, 03:31 22-04-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Nikoderiko
    for %%A in ("%~dp0.") do set folder=%%~nA
    echo %folder%
     
    "%~dp0.." - для возврата директории на 1 уровень ближе к диску

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 03:22 22-04-2011 | Исправлено: 5peciali5t, 03:26 22-04-2011
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:41 22-04-2011 | Исправлено: king_stiven, 23:17 22-04-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Объясните, пожалуйста, почему не работает?

    Код:
    for /f "delims=" %%i in ('dir /b /s /a-d "D:\Прочее\Image Catalyst\Images\*.png"') do echo "%%~fi"

    и что значат параметры /b /s /a-d?

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:02 23-04-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    С кодировкой все в порядке? Если батник сохранен в системной ( cp1251 ), то добавь в начало батника команду `1>nul chcp 1251`


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:12 23-04-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    точно, дело в кодировке. Спасибо.
    и что значат параметры /b /s /a-d? не могу ни где найти описание

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:17 23-04-2011
    01MDM



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

    Цитата:
    что значат параметры /b /s /a-d? не могу ни где найти описание

     
    dir /?

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:19 23-04-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    да, т.е. меня интересует, что делает строчка dir /b /s /a-d в вышеприведенном примере

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 20:20 23-04-2011 | Исправлено: lorents, 21:55 23-04-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents
    Тоже самое, что и просто команда, выводит список файлов *.png
    Просто выполни эту команду без for и увидишь результат.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:00 23-04-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru