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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    slay1212

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

    Цитата:
    Команда dir /b без ключа /s выводит только имена файлов, без полного пути.  

     Вот что значит, надо внимательно читать госты ! А после do пытался удалять лишние файлы. Причем  %%~dpi  брала путь батника а i - только имена файлов. Я думал /s только подкаталогов касается.

    Всего записей: 336 | Зарегистр. 28-05-2008 | Отправлено: 18:05 21-11-2008
    DrepsVLZ

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

    Цитата:
    sleep 60
    call 2.bat
     
     не катит?  

     
    Да, все получилось! Благодарю.

    Всего записей: 2 | Зарегистр. 21-11-2008 | Отправлено: 22:52 21-11-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как сделать условие: поиск символов (FINDSTR /R /I /C) в предопределенное переменной, если указанные символы есть делать goto если нет, то exit

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 23:49 21-11-2008
    Elroir



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

    Код:
     
    echo %переменная% | findstr /i /r /c:"^abcd">nul && goto label || goto :EOF
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:55 22-11-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, извини , спасибо! Нужно было заглушку поставить на set /P
     
    Подскажите, как сделать, что-то типа ассоциативного массива, брать случайное его значение и выставлять ему set.  
    Проще говоря: есть несколько предопределенных переменных:

    Код:
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
    Opera/9.60 (Windows NT 5.1; U; en) Presto/2.1.1
    Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)

    Нужно, чтоб переменная %useragent%, при каждом запуске bat’ника была равна случайному значению из этого списка.

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 13:21 22-11-2008 | Исправлено: batniki, 13:23 22-11-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    batniki
    Посмотри здесь - вопрос timsky и мой ответ ему.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:38 22-11-2008
    Igor_V_Mitichev

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня не совсем скриптовая задача, но очень похоже (собственно, вопрос и вырос из проблемы, возникшей со скриптом). Может быть кто поймет, почему dir не видит файл, хотя он есть:
     
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
     Volume in drive D has no label.
     Volume Serial Number is 6CE4-C31D
     
     Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
     
    File Not Found
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir | find ".mp3"
    04.08.2008  14:05         2 584 242 2x2-Roce On.mp3
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>
     
    Или такой вариант (типа в топик):
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>files.cmd
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b   | find ".mp3"  1>files.txt
    D:\share\Общая\АСМ-1\ТерешинАА\2>for /F "tokens=*" %i in (files.txt) do dir "%i"
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir "2x2-Roce On.mp3"
     Volume in drive D has no label.
     Volume Serial Number is 6CE4-C31D
     
     Directory of D:\share\Общая\АСМ-1\ТерешинАА\2
     
    File Not Found
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>
    D:\share\Общая\АСМ-1\ТерешинАА\2>type files.txt
    2x2-Roce On.mp3
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>
     
     
    Мистика?

    Всего записей: 32 | Зарегистр. 26-07-2008 | Отправлено: 19:30 22-11-2008
    Elroir



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

    Цитата:
    Мистика?

    Вряд-ли
    Скорее в названии файла присутствуют русские буквы, которые выглядят, как латинские.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:46 22-11-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Igor_V_Mitichev
    Добавлю на ответ Elroir, еще файл может иметь атрибут "скрытый" (hidden)
     
    Что показывает `dir /b /a *.mp3`?  
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:45 22-11-2008
    batniki



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

    Цитата:
    Посмотри здесь - вопрос timsky и мой ответ ему.

    чет он без goto display не работает

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 21:46 22-11-2008
    Elroir



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

    Цитата:
    чет он без goto display не работает  

    А код и не должен работать без "goto display". Разбирайся.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:22 22-11-2008
    Freemanther

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Теперь нужно в файлах из списка заменить IDST1 на IDST.
    Если можно то без sbs2.com.
    Ну если нельзя, то как есть.

    Всего записей: 4 | Зарегистр. 21-06-2008 | Отправлено: 23:29 22-11-2008
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DrepsVLZ
    в шапке есть утилитка nircmd, с ней варианты:
    start /wait nircmd.exe wait 3000
    или
    nircmd cmdwait 1000

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 06:58 23-11-2008
    Igor_V_Mitichev

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

    Цитата:
    Вряд-ли
    Скорее в названии файла присутствуют русские буквы, которые выглядят, как латинские.
     

     
    Во втором варианте мы что делаем: получаем через dir имена файлов в каталоге, через find отсеиваем те, которые имеют расширение mp3 и сохраняем их в файле files.txt  и в конце концов через for пытаемся скормить команде dir эти самые файлы, которые она только что сама и выдала. Никакой перекодировки тут нет. Однако на фактически свой собственный вывод она ругается словами "File Not Found":
     
    ===============
    dir /b | find ".mp3" > files.txt
    for /F  "tokens=*" %%i in (files.txt) do dir "%%i"
    ===============
     
    To: 01MDM
     
    ==============
    D:\share\Общая\АСМ-1\ТерешинАА\2>attrib "2x2-Roce On.mp3"
    File not found - 2x2-Roce On.mp3
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b/a *.mp3
    2x2-Roce On.mp3
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>dir /b *.mp3
    2x2-Roce On.mp3
     
    D:\share\Общая\АСМ-1\ТерешинАА\2>
    ==============

    Всего записей: 32 | Зарегистр. 26-07-2008 | Отправлено: 16:04 23-11-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Igor_V_Mitichev
    А если переименовать его - находит?
    Помнится я умудрился как-то сохранить на диск файл с именем типа part1:part2, так тоже ни dir ни ren не видели в имени part2(думали наверно, что это ntfs-поток)

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 16:28 23-11-2008 | Исправлено: igor_andreev, 16:31 23-11-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, спасибо за код, под вечер туплю просто
     
    Подскажите, как сделать след.:
    Есть .txt файл, в нем ссылки по одной на строку, такого вида http://domain.zone/shell1.exe,
    как запустить все приложения из списка, после конечного слэша, с параметром start /w для каждого

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 18:21 23-11-2008
    01MDM



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

    Код:
     
    @echo off
    setlocal
     
    for /f "tokens=*" %%i in (1.txt) do set "app=%%i" && call:start
    goto:eof
     
    :start
    set app=%app: =Ъ%
    set app=%app:/=,%
    for %%i in (%app%) do set app=%%i
    start /wait "" "%app:Ъ= %"
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:21 23-11-2008
    batniki



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

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 19:31 23-11-2008
    zzxx1488

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    приветствую,
    нужно определить размер файла, если он больше 10 байт то одно, нет другое..
    читал форум сделал что то вроде этого
     
    set file=file.txt
    call :xxx %file%
    :xxx
    if %~z1 == 10240 (  
    goto :xxend
    ) else (  
    goto :eof
    )
     
    но во-первых он проверяет точный размер, во-вторых длиновато, в одну строку с использованием for можно?

    Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 00:14 24-11-2008
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли у кого утилитка, которая бы показывала что идёт процесс выполнения батника? К примеру батник выполняется скрыто в течении нескольких секунд к примеру 30 сек, обычно пользователь может запустить процесс повторно, так вот в скрытом батнике запустить утилитку с полоской прогресса, а в конце сценария убить этот процесс.

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 00:34 24-11-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 100

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru