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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 12:28 15-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios
    у меня к тебе вопрос чисто теоретический - почему в коде не работает удвоенный амперсанд (как теория это объясняет?) ?  
    у меня нет в наличии батников (которые я использую) с подобной конструкцией (какие есть с for'om - у меня там процедуры), а на форуме я встречал и конструкции с &&, и с & (в цикле после do) - так и составил

    вопрос снят

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:44 15-11-2009 | Исправлено: mugil_cephalus, 14:27 15-11-2009
    wolf0425



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

    Цитата:
    у меня к тебе вопрос чисто теоретический - почему в коде не работает удвоенный амперсанд (как теория это объясняет?) ?  
    теория объяяняет просто - set /p var=text  выдает errorlevel 1 при нулевом вводе, т.е. 0<nul set /p =text  - всегда НЕуспешно выполненная команда.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:15 15-11-2009 | Исправлено: wolf0425, 14:15 15-11-2009
    mugil_cephalus

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

     
    Добавлено:
    wolf0425
    у тебя наверное есть win server 2003 reskit - там нету команды clip ? - читал про нее у staneka, но  у меня win 5.1 + supporttools

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 14:21 15-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios
     
    У меня все батники, написанные mugil_cephalus нормально работают в таком виде, в каком он мне предоставил их на форуме.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 15:57 15-11-2009
    Ortios



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    soft111
    Ну с mugil_cephalus вопрос прояснился, этот товарищ даже не тестирует то, что выкладывает здесь, вводя в заблуждение уважаемую публику и пытаясь превратить форум в некое подобие чата. Кстати, он де-факто признал, что оба кода которые он для вас написал неработоспособны в том виде, которые он представил здесь.
    Теперь с вами. Вы действительно утверждаете, что в задаче по удалению пустой строки код на самом деле заходит на ветку выделенную крупным шрифтом do 0>nul 1>C:\test\%~n1.txt set /p="%%i" && del /q %1 && ren C:\test\%~n1_.txt C:\test\%~nx1 ,
    тогда одно из трех, либо у вас стоит неизвестная операционная система, либо вы еще не запускали батник, либо вообще не читаете то, что написано на последних страницах топика.
    Чур без обид.

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 18:40 15-11-2009 | Исправлено: Ortios, 18:41 15-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios
    интересный пассаж - сами перешли на метафоры:
    Цитата:
    И вообще, как раньше говорили старые механики, механизм должен работать не в принципе, а в кожухе.  

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

     
     
    Добавлено:
    Ortios
    хотя я и согласен с теоретическим дискурсом wolf0425
    Цитата:
    теория объяяняет просто - set /p var=text  выдает errorlevel 1 при нулевом вводе, т.е. 0<nul set /p =text  - всегда НЕуспешно выполненная команда.  
    вот у этого человека  -  http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=29819&start=1340#11  -  тоже работает с двумя &&:  

    Цитата:
    Код:echo off  
    call:_1 temp  
    set var1=  
    set var2=  
    goto :eof  
     
    :_1  
    for /f "tokens=2 delims=>" %%i in ('"type %1"') do set "var1=%%i"  
    set "var2=%var1:~0,-7%"  
    0>nul 1>%~n1_.txt set /p="%var2%" && del /q %1 && ren %~n1_.txt %~nx1  
    goto :eof  

    как это объяснить  практически (это, если вы еще не поняли, синоним вашей метафоры "кожух" во введенной вами манере изъясняться)  я не знаю, - мне не до схоластической полемики, но если вам интересно, можете обратиться и к нему
     
     
     
    Добавлено:

    Цитата:
    Ну с mugil_cephalus вопрос прояснился, этот товарищ даже не тестирует то, что выкладывает здесь, вводя в заблуждение уважаемую публику и пытаясь превратить форум в некое подобие чата. Кстати, он де-факто признал, что оба кода которые он для вас написал неработоспособны в том виде, которые он представил здесь.
    - справедливость или отсутствие оной в подобных обвинениях в питие младенческой крови оставляю на суд форумчан

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 18:55 15-11-2009 | Исправлено: mugil_cephalus, 19:28 15-11-2009
    Ortios



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

    Цитата:
    механизм должен работать не в принципе, а в кожухе.

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

    Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 20:04 15-11-2009 | Исправлено: Ortios, 20:26 15-11-2009
    mugil_cephalus

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

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

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

    Цитата:
    отладили тебе отдельные части кода

     это верно про set /p?

    Цитата:
    И потом задачи, на выдергивание ссылок-URLов гораздо эффективнее делать SEDом. С помощью стандартных команд это полный изврат.

    не припомню, где я оппонировал этому тезису

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 20:20 15-11-2009
    wolf0425



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

    Цитата:
    вот у этого человека  -  http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=29819&start=1340#11  -  тоже работает с двумя &&:  
    вообще-то перед тем как говорить что у него "тоже работает" - проверь сначала это у себя  
     
    Желающих писать тут всякие бредовые советы, а потом отбрехиваться "вот ему надо - пусть он мое глюкало и тестирует, я очень занятой, у меня времени на это нет, поэтому пишу как умею" - тут всегда хватало, не нужно на них равняться.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 20:25 15-11-2009 | Исправлено: wolf0425, 20:38 15-11-2009
    king_stiven

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

    Цитата:
    трансфер окончательной кастомизации  



    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:25 15-11-2009
    mugil_cephalus

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

    Цитата:
    вообще-то перед тем как говорить что у него "тоже работает" - проверь сначала это у себя  

    говорить, что у него работает, я не могу - потому что чисто физически не наблюдал этого процесса , я лишь ретранслировал его слова, поэтому со всеми апелляциями не ко мне, а к нему
    воссоздать его условия у себя - тоже не могу по сугубо объективным причинам

    Цитата:
    а потом отбрехиваться "вот ему надо - пусть он мое гюкало и тестирует, я очень занятой, у меня времени на это нет"  

    приведи ссылку, где я это писал. я выложил код - мне на чистом русском ответили:
    Цитата:
    У меня все батники, написанные mugil_cephalus нормально работают в таком виде, в каком он мне предоставил их на форуме.


    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 20:42 15-11-2009
    mugil_cephalus

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

    Цитата:
    И потом задачи, на выдергивание ссылок-URLов гораздо эффективнее делать SEDом. С помощью стандартных команд это полный изврат.

     

    Цитата:
    Напомню второй вопрос, есть текстовый файл, в нем строка выглядит так: <a href="https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563"><font face="verdana,helvetica" color="#FF6905" style="font-size: 11px">https://login.site.com/app/signup/confirm.cgi?u=name1&uid=2074563</font></a><br><br> (все написано в одну строку, напоминаю, нужно оставить только 1 url, сайт не меняется, меняются только name1 и 2074563, причем name1 может быть больше 5 символов. Текстовые файлы распологаются, допустим в папке C:\test2. Можно ли что нибудь сделать не прибегая к сторонним утилитам?

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

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 10:32 16-11-2009 | Исправлено: mugil_cephalus, 10:36 16-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ortios Операционная система 2003 server, батники я запускал иначе для чего бы я просил о помощи?  
    У меня работает конструкция как с одной & так и с двумя, разницы абсолютно никакой.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 11:32 16-11-2009
    NIKZZZZ



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

    Цитата:
    Можно ли что нибудь сделать не прибегая к сторонним утилитам?


    Код:
    FOR /F "tokens=1 delims=^<^>" %%i in (file.txt) do set url=%%i
    set url=%url:~7%
    echo %url%


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:47 16-11-2009 | Исправлено: NIKZZZZ, 11:51 16-11-2009
    CYMar



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи! Прошу помощи!
    Необходимо после запуска системы открыть приложение, и после открытия данного приложения открыть одно из его окон (скорее всего по Hotkey F11).
    Вот накидал скрипт на vbs

    Код:
     
    Option Explicit
    Dim WshShell, theAzi
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set theAzi = WshShell.Exec("azi.exe")
    WScript.Sleep 15000
    WshShell.AppActivate theAzi.ProcessID
    WshShell.SendKeys "{F11}"
     

    Если я запускаю скрипт, то все работает. Но (!) когда я ставлю его в автозагрузку (будть то через реестр HKLM...\RUN, будть то через службу) sendkeys работать не хочет.
    Может кто уже сталкивался и борол такую проблему. Спасибо.

    Всего записей: 81 | Зарегистр. 29-07-2006 | Отправлено: 11:53 16-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    вопрос по другой теме, - delims можно задать как символ " . А то у меня что-то не задавался (и даже так "tokens=1 delims=";" )
     
    Добавлено:
    CYMar
    sendkeys часто "капризничает" - ты задавал свой вопрос здесь - Программирование "удобняшек" на VBScript  http://forum.ru-board.com/topic.cgi?forum=33&bm=1&topic=1491#1

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 11:56 16-11-2009 | Исправлено: mugil_cephalus, 12:04 16-11-2009
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:35 16-11-2009
    BVV63



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как в конструкции for... in... do... грамотно работать с переменными. К примеру, если в командной строке выполнить команды
     
    Set Letters=A
    Set Letters=%Letters%B
     
    то переменная %Letters% будет в результате иметь значение AB.
    Но когда я выполняю
     
    For %%A In (A B) Do Set %Letters%%%A
     
    результатом будет B.
    А ежели я удваиваю число знаков процента
     
    For %%A In (A B) Do Set %%Letters%%%%A
     
    результатом будет %Letters%B.
    Как мне добиться того же результата, что и при работе в консоли? Заранее благодарен.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 14:15 16-11-2009
    CYMar



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

    Цитата:
    утилита nircmdc эмулирует нажатие клавиш

    Почитав про VBS понял, что там проблема не с отправкой символов (SendKeys), а с активацией приложения (AppActivate) в которое нужно отправить нажатия клавиш. К сожалению nircmdc не умеет выбирать нужного окна.

    Всего записей: 81 | Зарегистр. 29-07-2006 | Отправлено: 14:19 16-11-2009
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru