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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    res2001



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

    Цитата:
    Тут одна проблема возникла, если я использую кодировку 866, то пути файлов которые отображает программы, отображаются симсолами  

    А где скрипт отображает пути? В savelog только имена файлов и числовые значения.
    Файловая система имена хранит в 1251, поэтому действуй так же как и в savelog, перед выводом меняешь  на 1251, выводишь, меняешь назад. Но это изврат.
    Воспользуйся советом wolf0425 примени в начале батник изменяющий настройки консоли, и весь батник делай в 1251.
     
     
    Добавлено:
    ComradG

    Цитата:
    vbs зипующей/анзипующей через системный шелл

    Чё та не работает скрипт на упаковку: "Объект не поддерживает это свойство или метод IE.REadyState" в 47 строке.
    У меня 8 ишак.
     
    Слушь, ты когда тестировал эту vbsку, не пробовал вариант без fso.CreateTextFile(ZIPfile, false).Write ZIPHeader  
    Неужто винда сама догадаться не может, что в зип файл надо зип заголовок записать?
    Что будет, если просто создать зип нулевой длинны? и попытаться туда закинуть несколько файлов.
     
    Интересно, какие еще фокусы можно делать с помощь NameSpace и объекта Shell.Application. В доке толком ничего не написано.  
    Похоже что любую надстройку над проводником, которая позволяет представлять некие объекты как папки можно использовать по тому же принципу.
     
    Добавлено:
    All
    Разбираю почтовые файлы экспортированные из Batа.
    Некоторые поля закодированы в BASE64.
    Есть ли способ раскодировать из base64 без использования сторонних приблуд?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 08:59 05-07-2010
    giv5dot26



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Можно ли решить такую задачу: есть файл в нем пять столбцов с данными, необходимо выписывать значения крайнего правого? Если нужен файл для примера могу залить.

    Всего записей: 302 | Зарегистр. 25-07-2007 | Отправлено: 10:56 05-07-2010 | Исправлено: giv5dot26, 11:14 05-07-2010
    mugil_cephalus

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

    Цитата:
     без использования сторонних приблуд?  

    vbs'om ?
     
    Добавлено:
    Ex0dus
    спроси здесь - http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=5312#1

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 11:01 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    А паковал как? Там синтаксис описан, так что, надо думать все по интрукции делал:

    Код:
    cscript zip.vbs -a x:\zipfile.zip x:\dir

    На счет восьмого ишака не знаю в чем там может быть дело. На счет

    Цитата:
    не пробовал вариант без fso.CreateTextFile(ZIPfile, false).Write ZIPHeader

    то это вряд ли возможно. Любой zip файл держит в своем заголовке данные типа

    Код:
    "PK" + (char)5 + (char)6 + string(18, char(0))

    А если системному шеллу не сообщить данные заголовка, то он создаст некорректный текстовый файл.
    На счет NameSpace и Shell.Application. NameSpace(пространство имен) - оно представляет данные типа string, если не ошибаюсь, и изначально пусто, поэтому его можно забить всем чем угодно. Shell.Application - элемент довольно универсальный, по крайней мере на мой взгляд. Качни msdn, почитай по Васику, если интересно, чтобы мне здесь не оффтопить больше.
    wolf0425

    Цитата:
    пока же только спасибо за само напоминание что в .НЕТ входит компилятор, я больше изврату с генерацией+компиляцией порадовался, чем произведенному с его помощью экзешнику

    А это что по твоему? Не умеешь прогать, а экзешник то все же оставил себе
    P.S>
    Цитата:
    Интересно, какие еще фокусы можно делать с помощь NameSpace и объекта Shell.Application. В доке толком ничего не написано.  
    Похоже что любую надстройку над проводником, которая позволяет представлять некие объекты как папки можно использовать по тому же принципу

    Не только.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:10 05-07-2010
    res2001



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

    Цитата:
    vbs'om ?  

    можно и vbs
     
    Добавлено:
    ComradG

    Цитата:
    А паковал как? Там синтаксис описан, так что, надо думать все по интрукции делал:  

    Да паковал как надо.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:34 05-07-2010
    ComradG



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

    Цитата:
    можно и vbs

    Вы с mugil_cephalus о чем это. Может я на что сгожусь.
     
    Добавлено:

    Цитата:
    Да паковал как надо.

    Я писал в самом скрипте, что он еще в разработке, так что СПАСИБО за указание на баг!

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:38 05-07-2010
    res2001



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

    Цитата:
    Здравствуйте. Можно ли решить такую задачу: есть файл в нем пять столбцов с данными, необходимо выписывать значения крайнего правого? Если нужен файл для примера могу залить.  

    for /f "tokens=5" %%a in (file.txt) do echo %%a
    Кинешь пример файла, напишу подробнее.
     
    Добавлено:
    ComradG

    Цитата:
    Я писал в самом скрипте, что он еще в разработке, так что СПАСИБО за указание на баг!

    Это я заметил, так что пожалуйста

    Цитата:
    Вы с mugil_cephalus о чем это. Может я на что сгожусь.

    я выше спрашивал про кодирование в/из base64. Пока интересует больше раскодирование, но думаю и кодирование пригодится.
    В винде судя по всему по умолчанию ничего такого нет, сторонние приблуды, ессно, есть.
    Может как-то на vbs это сделать возможно?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 11:41 05-07-2010
    ComradG



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

    Цитата:
    Может как-то на vbs это сделать возможно?

    Нет ничего невозможного. Но что-то мне подсказывает, что сие реализовывать лучше на жабаскрипте, а не вася-сценарии (в плане компактности кода). Хотя попробую. Правда не уверен в успехе сего предприятия, так что обещать ничего не буду.
     
    Добавлено:
    Кстати, res2001, а как на счет использования в батниках он-лайн (де)кодеров в base64?

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 11:53 05-07-2010
    giv5dot26



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Файл выложить не получилось поэтому тут выкладываю чать файла
     

    Цитата:
     
    1 05.07.2010 04:02:16.126 05.07.2010 11:02:16.126 5016,2
    2 05.07.2010 04:02:17.126 05.07.2010 11:02:17.126 5023,1
    3 05.07.2010 04:02:18.126 05.07.2010 11:02:18.126 5032,4
    4 05.07.2010 04:02:19.126 05.07.2010 11:02:19.126 5032,40
    5 05.07.2010 04:02:20.126 05.07.2010 11:02:20.126 5025,46
    6 05.07.2010 04:02:21.126 05.07.2010 11:02:21.126 5039,3
    7 05.07.2010 04:02:22.126 05.07.2010 11:02:22.126 5055,5
    8 05.07.2010 04:02:23.126 05.07.2010 11:02:23.126 5025,4
    9 05.07.2010 04:02:24.126 05.07.2010 11:02:24.126 5016,20
    10 05.07.2010 04:02:25.126 05.07.2010 11:02:25.126 5043,9
    11 05.07.2010 04:02:26.126 05.07.2010 11:02:26.126 5048,6
     

    вот значения последних столбцов (5016,2) нужно скопировать в другой файл.

    Всего записей: 302 | Зарегистр. 25-07-2007 | Отправлено: 12:01 05-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    giv5dot26
    дык это 6ой столбец.
    Вобщем та команда что я тебе написал вполне подходит для этого файла, только номер столбца поправить:

    Код:
    for /f "tokens=6" %%a in (file.txt) do >out.txt echo %%a

    выводит в файл out.txt шестой столбец.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:07 05-07-2010
    ComradG



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

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:07 05-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ComradG
    он-лайн не катит.
    Скрипт будет работать на серванте без доступа к нету.
    Собственно, можно с этих сайтов выдернуть скрипт перекодировки.
    JS меня вполне устроит, я, собственно, его предпочитаю больше чем vbs.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:12 05-07-2010
    giv5dot26



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

    Всего записей: 302 | Зарегистр. 25-07-2007 | Отправлено: 12:17 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Да! а куда потом жабу кидать - я ветки подходящей так и не нашел. Может PM?

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 12:19 05-07-2010
    res2001



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

    Код:
    for /f "tokens=6" %%a in (file.txt) do >>out.txt echo %%a  

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:19 05-07-2010
    giv5dot26



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    В выходном файле оказывается только последнее значение.
     
    Добавлено:
    res2001
    В выходном файле оказывается только последнее значение.
     
    Добавлено:
    Что то форум тупит. Спасибо все работает!

    Всего записей: 302 | Зарегистр. 25-07-2007 | Отправлено: 12:22 05-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ComradG
    Нарыл на одном из предложенных тобой сайтов ссылку, на библиотеку js скриптов, есть очень интересные, в т.ч. и base64, UTF8. Смотрим тут, еще меня заинтересовали скрипты MD5,SHA256, CRC32.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:35 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Еще глянь почту - я тебе js'ку по сабжу кинул. Оказывается год назад я base64 уже разбирал. Правда зачем, уже не помню

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 13:03 05-07-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ComradG
    Спасибо, буду прикручивать.
    Осталось найти кодировщик на js из/в koi8-r для полного счастья

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:11 05-07-2010
    ComradG



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати, res2001, если у тебя есть в наличие Visual Studio, то тамошнее SDK устанавливает в систему capicom.dll - библиотеку шифрования, которая главным образом используется для подписи файлов. Так вот, в ней рализована туева хуча алгоритмов шифрования, в том числе и base64. И если приложить немного фантазии и знания написания сценариев, то можно и так шифровать данные
    Кстати, если не ошибаюсь capicom.dll имеется в Vist'е и 7-ке по умолчанию. Или нет?
     
    Добавлено:
    koi8-r разбирается аналогично utf-8 - ничего сложно там нет.

    Всего записей: 2038 | Зарегистр. 05-07-2008 | Отправлено: 13:25 05-07-2010 | Исправлено: ComradG, 13:25 05-07-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