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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    klimusu



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BVV63
    хм.. видимо проблемы не сервер, когда меняю кодировку, сразу выводит кракозябры, при копировании в буфер и вставке на своем компьютере, текст корректен.
     
    p.s. как прочитать файл в переменную?

    Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 08:58 30-08-2010
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    klimusu
    Если файл содержит несколько строк, то в переменную его содержимое не засунуть. Но можно использовать массив переменных, напр.: %String_1%, %String_2%, %String_3% ...
    Напр., так:

    Код:
    Set Var=0
    SetLocal EnableDelayedExpansion
    For /F "Tokens=* UseBackQ" %%A In (`Type FileName`) Do (
        Set Var+=1
        Set String_!Var!=%%A
    )

    P. S. Чуток подправил.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 09:16 30-08-2010 | Исправлено: BVV63, 09:20 30-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    @echo off
    rd /s /q "%~dp0"  & exit  
    а у меня не работает. папку оно не удаляет, потому что она занята процессом.
    можно строку добавить
    IF EXIST "C:\Program Files\CCleaner\CCleaner.exe" "C:\Program Files\CCleaner\CCleaner.exe" /AUTO
     
    и я вообще хитро придумал щас попробую реализовать - интересно будет работать
     
    Добавлено:
    нет не будет - я подумал может батник создать в корзине по ее абсолютному пути, но нет. так не получица.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 10:04 30-08-2010
    wolf0425



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

    Цитата:
    вот так можно сделать тогда вообще не будет сообщения об ошибке.  
    @echo off
    cd "%USERPROFILE%\Local Settings\Temp"  

    в одной строке строке аж две ошибки:
    1. она не сработает в батнике, запущенном из шедулера
    2. она не сработает в батнике, запущенного с диска отличного от диска с профилями.
     
    Добавлено:

    Цитата:
    rd /s /q "%~dp0"  & exit  
    а у меня не работает. папку оно не удаляет, потому что она занята процессом.
    у тебя этот мешающий процесс - не cmd, выполняющий батник, а наверно какой-нибудь тоталкомандер, которым ты такой батник запустил. Или ещё какая-то программа, к батнику отношения не имеющая.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 10:55 30-08-2010 | Исправлено: wolf0425, 11:11 30-08-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 10:57 30-08-2010
    wolf0425



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

    Цитата:
    хм.. видимо проблемы не сервер, когда меняю кодировку, сразу выводит кракозябры,

    видимо у тебя для шрифта консоли по умолчанию выбран неуникодный фонт Терминал, ещё со времен установки виндов.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:19 30-08-2010
    lorents



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

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 15:09 30-08-2010 | Исправлено: lorents, 17:10 30-08-2010
    wolf0425



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

    Цитата:
    всё тупишь
    нет, что ты, ты от рожденья такой, никто тебя не тупит

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 19:17 30-08-2010
    Free_Soft



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

    Код:
    rd /s /q "%~dp0"  & exit  
    отрабатывается корректно.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:23 30-08-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    вульфи так и не нашел себе форум для начинающих клоунов.
     
    оно отрабатывается, но в случае если рабочая папка будет сама папка удаляемая - она без смены рабочей директории не удалится.
    первая конструкция которую я накропал - меняет фатальную ошибку из за которой батник вылетает, на нефатальную - после нее батник продолжает работать, но строку ошибки выдает.  вторая не выдает ошибку вообще, но твое условие формально не выполняет - копия батника остается в темп и будет удалена когда очиститься сама папка
     
    Добавлено:
    в приципе можно так попробовать сделать. на системном диске хп, в корне лежит файл autoexec.bat, пустой. можно его использовать, а потом очистить, может ошибки не будет.
     
    Добавлено:
    это уже смысла не имеет можно поставить за строкой CLS и ты ее не увидишь никогда эту ошибку

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 19:33 30-08-2010 | Исправлено: bomzzz, 19:38 30-08-2010
    wolf0425



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

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 20:20 30-08-2010 | Исправлено: wolf0425, 20:29 30-08-2010
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    У меня есть тестовой файл. Подскажите, как можно сделать следующее, если в этом текстовом файле есть слово "interlaced" (без кавычек), то выполнить определенное действие? Ни как не могу найти пример, на подобии моего вопроса.

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 20:23 30-08-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lorents find "interlaced" < file.txt 1>nul && echo Found!
     

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

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 20:31 30-08-2010 | Исправлено: wolf0425, 20:42 30-08-2010
    lorents



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

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 20:48 30-08-2010
    us0r



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

    Всего записей: 407 | Зарегистр. 06-12-2007 | Отправлено: 21:03 30-08-2010 | Исправлено: us0r, 21:10 30-08-2010
    wolf0425



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

    Цитата:
    а можно с условием если найден, то?
    там и есть с условием - если текст найден то печатаем сообщение.
    заменить команду echo на нужное тебе действие - ты самостоятельно можешь?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 21:18 30-08-2010
    us0r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    setlocal
    for /f "usebackq" %%i in (`find "interlaced" < file.txt`) do set var=%%i
    if /i "%var%"=="" do action_02
    action_01

    Всего записей: 407 | Зарегистр. 06-12-2007 | Отправлено: 21:18 30-08-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    если тебе настолько мила команда if что без неё ты условий не видишь - то можно и так:

    Код:
    1>nul find "interlaced" < file.txt  
    if errorlevel 1 (echo Not found) else (echo Found!)  
    оно длиннее чем с && но тоже должно работать
     
    Добавлено:
    us0r, ты ^ потерял, и забыл сброс var до цикла
    вариант с for симпатичнее будет так:

    Код:
    for /f  %%i in (' find /c "interlaced" ^< file.txt ') do set var=%%i  
    if /i %var% neq 0 echo Found!

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 21:21 30-08-2010 | Исправлено: wolf0425, 21:34 30-08-2010
    lorents



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

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

    Всего записей: 3299 | Зарегистр. 30-12-2007 | Отправлено: 21:27 30-08-2010
    us0r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    No body is perfect...
    Спс за поправку.

    Всего записей: 407 | Зарегистр. 06-12-2007 | Отправлено: 21:41 30-08-2010
       

    Страницы: 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru