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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо большое!
    Опробовал - выдается сообщение об ошибке в синтаксисе. Но, как я понимаю - в этом примере еще не правильно установлены переходы на goto :EOF?

    Всего записей: 115 | Зарегистр. 04-12-2006 | Отправлено: 15:58 26-12-2008
    Elroir



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

    Цитата:
    Но, как я понимаю - в этом примере еще не правильно установлены переходы на goto :EOF?

    Все установлено правильно. Я только что скопировал код со страницы в новый батник. Запустил - все работает. Система WinXP SP3 English.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:56 26-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую
     
    Такой вопрос:
     
    Копирую батником файл, например вот так:
    copy \\Comp1\c$\folder1\file1.txt \\Comp2\c$\temp\  
    И необходимо в случае успешного копирования выполнять некое условие.
    Как в if определить успешно ли скопирован файл (причем файл в папке назначения уже был, он просто замещается на более новый)?
     

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 03:23 27-12-2008
    Nagual



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

    Цитата:
    он просто замещается на более новый

    при такой записи, если файл существует, то выдается запрос на его перезапись
    однако, если поставить ключ /y, то запроса выдаваться не будет
    если нужна именно перезапись, то можно попробовать использовать утилиту replace/?
     
    если в следующей строке поставить @echo %errorlevel%, то мы увидим код возврата команды из предыдущей строки
    как правило, если мы видим 0, то команда выполнилась без ошибок
    более подробно о кодах возврата надо смотреть на сайте разработчиков или в справке
     
    т.о., если после команды написать строку примерно так:
    if %errorlevel%==0 @echo succesfully
    мы получаем обработку кодов возврата нашей команды оператом if (если)

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 21:36 27-12-2008 | Исправлено: Nagual, 21:38 27-12-2008
    johnmar



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как последний символ строки из STDIN, выводимой программой cmd1.exe записать в переменную %var1%?

    Всего записей: 30 | Зарегистр. 28-03-2008 | Отправлено: 12:10 28-12-2008
    igor_andreev

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

    Код:

    for /f "tokens=*" %%a in ('cmd1.exe') do set "line=%%a"
    set "var1=%line:~-1,1%"

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 13:32 28-12-2008
    CKA3O4H1K



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    К сожалению для меня задача оказалась непосильной, прошу помощи
     
    Данное решение окажется полезным для всех кто хоть иногда фотографирует в RAWе. Задача следующая:
     
    Фотоаппарат сохраняет два файла: RAW и JPG
    После копирования всех фотографий и последующем просмотре, естественно, возникает желание часть фотографий удалить. В большинстве случаев просматриваются JPGи, они же и удаляются. После них остаются огромные RAWы, которые тоже нужно удалить. Вручную это делать очень не удобно, приходиться смотреть какие JPG остались, вспоминать...
     
    Очень хотел бы иметь скрипт, который сканировал бы текущую папку на RAWы, и искал соответствующий ему по имени JPG. Если JPG не существует - удалять текущий RAW.
     
    Сложна ли задача?

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 01:15 29-12-2008
    igor_andreev

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

    Код:

    for %%a in (*.raw) do if not exist %%~na.jpg del %%a


    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 01:22 29-12-2008
    ruslanx3m

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Privet vsem , kak mne pomeneati "mac address" iz cmd ili .bat-nika  o4eni nujno !!!

    Всего записей: 5 | Зарегистр. 25-11-2008 | Отправлено: 01:47 29-12-2008
    CKA3O4H1K



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    браво! огромнейшее спасибо
     
    ruslanx3m
    если не прочитаете правила форума и не научитесь правильно задавать вопросы - вас забанят в самое ближайшее время
     
    по вашему вопросу - поищите утилиты, которые выполняют вашу задачу и умеют работать с командной строкой

    Всего записей: 1378 | Зарегистр. 26-10-2004 | Отправлено: 02:00 29-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    Спасибо! Как раз то, что нужно
     
    следующий вопрос:
    Есть файл: C:\Documents and Settings\all users\Рабочий стол\file.txt
    Как его удалить? Какие-то непонятки с кодировкой..
    Делаю, к примеру, так:

    Код:

    SET vrbl1="Рабочий стол"
    DEL "%AllUsersProfile%"\%vrbl1%\file.txt

    Получаю:
    c:\>SET vrbl1="&#9576;рсюўшщ ёЄюы"
    c:\>DEL "C:\Documents and Settings\All Users"\"&#9576;рсюўш
    щ ёЄюы"\file.txt
    Не удается найти указанный файл.
     
    Как это обойти?

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 02:04 29-12-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ruslanx3m
    тынц
    gbcfkf
    в начале батника напиши: chcp 1251

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 02:11 29-12-2008
    ruslanx3m

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    CKA3O4H1K , tak mojeshi podskazati 4to mne iskati ???  pls
     
    Добавлено:
    igor_andreev Спасибо!

    Всего записей: 5 | Зарегистр. 25-11-2008 | Отправлено: 02:13 29-12-2008 | Исправлено: ruslanx3m, 02:14 29-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    Пробовал и  
    chcp 1251  
    и chcp 1251 > nul
    без изменений

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 02:24 29-12-2008 | Исправлено: gbcfkf, 02:25 29-12-2008
    igor_andreev

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

    Код:

    SET "vrbl1=Рабочий стол"
    DEL "%AllUsersProfile%\%vrbl1%\file.txt"


    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 02:32 29-12-2008 | Исправлено: igor_andreev, 02:35 29-12-2008
    ruslanx3m

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev ne rabotaiet proga (ne dlya menea, - macshift.exe -i "Lan" 012345123456 ) ne meniaet mac address ,toliko restart setevuski   , mojet esti drugaya proga ?!

    Всего записей: 5 | Зарегистр. 25-11-2008 | Отправлено: 02:42 29-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    А, блин.. Оказалось, что я в процессе случайно стер удаляемый файл, вот батник ошибку кракозябрами и выводил
    Спасибо!
     
    ps щас сформулирую третий вопрос )
     

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 02:48 29-12-2008
    igor_andreev

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

    Цитата:
    macshift.exe -i "Lan" 012345123456  

     

    Цитата:
    For example, if you wanted to change your adapter named "Wireless" to the MAC 001122334455 (creative, I know, shut up)  
    переведи на русский слова автора в скобках... Пусть сама прога сгенерирует mac, раз ты не можешь.

    Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 02:59 29-12-2008
    gbcfkf



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

    Код:

    @echo off
    setlocal enabledelayedexpansion  
    Set K=1
    for /f "usebackq tokens=*" %%c in (file.txt) do (
    if !k!==4 (
    SET h=%%c
    goto vihod
    )
    SET /a K=K+1
    )
    :vihod
    set key=%h:~-29%
    echo %key%

    Короче он вырезает из 4-той строки файла file.txt последние 29 знаков и выводит на экран. Все работает
     
    А теперь я хочу сделать то же самое в цикле:

    Код:

    @echo off
    setlocal enabledelayedexpansion  
    for /F %%a in (Spisok.txt) do (
    Set K=1
    for /f "usebackq tokens=*" %%c in (file.txt) do (
    if !k!==4 (
    SET h=%%c
    goto vihod
    )
    SET /a K=K+1
    )
    :vihod
    set key=%h:~-29%
    echo %key%
    )

    И цикл завершается после первого же прохода, где ошибка?
    ps spisok.txt это список файлов:
    file1.txt
    file2.txt
    ..
    filen.txt

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 04:48 29-12-2008
    xmyrza0



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем салам!
    У меня такой вопрос: как можно создать текстовый файл на всех локальных дисках(c; -; z;)?

    Всего записей: 8 | Зарегистр. 09-10-2007 | Отправлено: 07:31 29-12-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