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

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

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

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AnGo
    есчо вариант
    for /R %%N in ("*.crm") do if "%%~xN"==".crm" echo %%N

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:04 22-06-2011
    p3west



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

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

     Ну да ну да. Я посмотрел бы на Вашу реакцию при точно таком же ответе Вам в интересующей Вас теме,но при этом Вы бы в ней не понимали. И ответ бы был такой же как и Ваш вопрос...

    Всего записей: 12 | Зарегистр. 05-10-2009 | Отправлено: 14:05 22-06-2011
    AlexanderNON

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    res2001
    Есть проблема по коду.
    Напомню:
    Мне нужно было сделать батник, который удалит из папки все архивы кроме созданных в пятницу.
     
    Вот код:

    Цитата:
    @set @x=0 /*
    @echo off
    set "workdir=G:\Bat\1\"
     
    for /f "tokens=*" %%a in ('dir /a:-d /b /s %workdir%*') do (
        for /f "tokens=*" %%b in ('cscript.exe //nologo /e:javascript "%~0" %%~ta') do (
            if %%b neq 5 echo del /f /q %%a
    ))
     
    goto:eof */
     
    var args = WScript.Arguments;
    var dd = new Date(args(0).substr(6,4),parseInt(args(0).substr(3,2))-1,args(0).substr(0,2));
    WScript.echo(dd.getDay());
    WScript.quit();  

     
    Проблема в том, что такой батник удаляет все файлы из папки.
    Может проблема в дате создания/изменения файла? Касперский каждый день проверяет файлы и поэтому в свойствах даты постоянно меняются:
     
    Создан: 22 июня 2011 г., 20:50:09
    Изменен: 10 июня 2011 г., 6:20:30
    Открыт: 22 июня 2011 г., 20:50:09
     
    Формат даты как положено ДД.ММ.ГГГГ
     
    Проверял на Windows XP и Windows 7
     
    Даже не знаю, в чем проблема...
     
     
     

    Всего записей: 22 | Зарегистр. 24-04-2011 | Отправлено: 14:24 22-06-2011
    wolf0425



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

    Цитата:
    И ответ бы был такой же как и Ваш вопрос...
    какой такой мой вопрос?
    от себя я помню описание составляющих для батника под абстрактный архиватор, написанного не мной после того как вы отказались уточнять что же вам нужно, и вполне работающий пример батника под rar,  в котором вам нужно было только заменить имена путей и архива на свои.
    Ну а также несколько рекомендаций вам сходить и наконец прочитать хэлп своего архиватора и учебник, что вы до сих пор почему-то не сделали.
     

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:44 22-06-2011
    p3west



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

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

     
    Спасибо не трудитесь понять меня и себя.Мне все подсказал king_stiven и я сразу все понял и уже написал что мне нужно.

    Всего записей: 12 | Зарегистр. 05-10-2009 | Отправлено: 14:48 22-06-2011
    wolf0425



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

    Цитата:
    Касперский каждый день проверяет файлы и поэтому в свойствах даты постоянно меняются:
    Создан: 22 июня 2011 г., 20:50:09
    Изменен: 10 июня 2011 г., 6:20:30
    Открыт: 22 июня 2011 г., 20:50:09  

    Касперский меняет только Открыт:
    Создан: это дата, когда файл с таким именем был создан на данном диске (перенос/переименование - её не меняют).
    Изменен: - это дата, когда данный файл последний раз изменяли (копирование/перенос/переименование  - её не меняют).
    то что в процитированном файл создали позже чем изменяли - говорит о том, что файл в папке появился в результате копирования из другой папки.
     
    дата %%~ta которая передается скрипту - это Изменен: , что не соответсвует написанному тобой условию задачи (проверять дату создания, а не модификации).
    тебе точно-точно дата создания важна? процитирвоанный файл в пятницу был модифицирован, а создан - сегодня, в среду.
     

    Цитата:
    что такой батник удаляет все файлы из папки.  
    у меня этот код исправно игнорирует файлы, модифицированные в пятницу, например с датой Изменен: 10 июня 2011

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:52 22-06-2011 | Исправлено: wolf0425, 15:08 22-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AlexanderNON
    Еще раз проверил - нормально работает, выводит файлы с датой изменения не пятница.
    Про то что берется дата изменения файла я специально в комментарии к коду озвучил.
     
    Добавлено:
    Для проверки: возьми код из батника отвечающий за определение дня недели, сохрани его в файл с расширением js и по запускай с разными датами в параметре.
    И посмотри, какой день недели будет выводится. Пятница это 5, воскресенье - 0, и .т.д.

    Код:
    var args = WScript.Arguments;
    var dd = new Date(args(0).substr(6,4),parseInt(args(0).substr(3,2))-1,args(0).substr(0,2));
    WScript.echo(dd.getDay());
    WScript.quit();

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:10 22-06-2011 | Исправлено: res2001, 15:12 22-06-2011
    seva_smr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем добрый день. Интересует следующая, довольно простая как мне кажется, проблема:
    Необходимо создавать папку просто с сегодняшней датой.
     
    Если делать так:  

    Код:
    SET A=%DATE%
    MD C:\%A%

     
    В итоге появляется папка C:\22.06.2011
     
    Как сделать, чтобы папка была без точек, а в идеале формат папки был ГодМесяцЧисло, т.е. в итоге получилась бы папка C:\20110622 ???

    Всего записей: 31 | Зарегистр. 11-03-2007 | Отправлено: 15:35 22-06-2011 | Исправлено: seva_smr, 15:36 22-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    seva_smr
    md c:\%date:~-4%%date:~3,2%%date:~0,2%

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 15:41 22-06-2011
    seva_smr

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

    Всего записей: 31 | Зарегистр. 11-03-2007 | Отправлено: 15:46 22-06-2011
    superman md



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    нужна помощь с setupcomplete.cmd. помогите дополнить, отключение гибернации и установка драйверов.
     

    Код:
    отключить гибернацию (powercfg -h /off)
     
    REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | findstr /i ULTIMATE >nul
    IF NOT ERRORLEVEL 1 cscript %windir%\system32\slmgr.vbs -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName | findstr /i PROFESSIONAL >nul
    IF NOT ERRORLEVEL 1 cscript %windir%\system32\slmgr.vbs -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
     
    если x86 запустить драйверпак DPs\DPsX86.EXE
    если x64 запустить драйверпак DPs\DPsX86.EXE

     

     
    драйверпак отсюда - FUCKYOUBILL

    ----------
    Нахожусь в очень сложном финансовом положении.
    Буду очень благодарен, если у вас найдется для меня занятие, которое поможет мне хоть немного заработать на дому!

    Всего записей: 1205 | Зарегистр. 27-06-2010 | Отправлено: 20:46 22-06-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    superman md
    так в чем проблема-то?

    Код:
    powercfg -h /off


    Код:
     if exist %windir%\SysWOW64 (DPs\DPsX64.EXE) else (DPs\DPsX86.EXE )

    в одном из DPs\DPsX86.EXE наверно опечатка?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:09 22-06-2011 | Исправлено: Free_Soft, 21:14 22-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    superman md
    Как-то так возможно:
    if "%PROCESSOR_ARCHITEW6432%" equ "AMD64" (DPs\DPsX64.EXE) else DPs\DPsX86.EXE
     
    Переменная PROCESSOR_ARCHITEW6432 присутствует в Win2003 x64, думаю что и в остальных версиях 64 битной винды она то же будет присутствовать, проверить нет возможности. В 32 битной винде этой переменной нет.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 21:13 22-06-2011
    Free_Soft



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

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 21:23 22-06-2011
    grom8f

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как закрыть firefox из bat файла

    Всего записей: 11 | Зарегистр. 10-01-2011 | Отправлено: 22:26 22-06-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    superman md
    Определение разрядности системы:
    Код:
    ECHO "%PROCESSOR_ARCHITECTURE%""%PROCESSOR_ARCHITEW6432%"|1>NUL 2>NUL FIND /I "AMD64"&&SET "MY_SYSTEM=X64"||SET "MY_SYSTEM=X86"


    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 22:32 22-06-2011
    Free_Soft



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

    Код:
    taskkill firefox.exe


    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 22:34 22-06-2011
    effo

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    seva_smr,
    res2001, спасибо
    возьму на заметку Ваш вариант создания date папки
     
    for /f "tokens=1-3  delims=." %%A in ("%date%") do (set today=%%C.%%B.%%A)
    md %today%

    Всего записей: 16 | Зарегистр. 02-02-2011 | Отправлено: 00:51 23-06-2011 | Исправлено: effo, 00:53 23-06-2011
    Canonier



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги, добрый день!
     
    Помогите, пожалуйста, разобраться!
     
    Я написал командочку для бэкапа базы данных Exchange 2010 и запускаю ее прямо на этом сервере:
     
    wbadmin start backup -backupTarget:\\192.168.1.10\backup\exchange\_MailBoxCurrent\ -include:"D:\Exchange\Mailbox" -vssFull -quiet
     
    Если я открываю окно Пуск - Выполнить - cmd и там ее запускаю, она прекрасно отрабатывает, а если я пишу скриптик cmd с этой командой он пишет, "wbadmin" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.  
     
    Я запускал принудительно от имени администратора, ставил полный путь до wbadmin.exe - ничего не помогает! Вроде все тоже самое! В чем хитрость?
     
    Спасибо!

    Всего записей: 142 | Зарегистр. 11-07-2007 | Отправлено: 10:57 23-06-2011
    grom8f

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft , Cпасибо
    у меня не сработал
    Вероятно потому что win 7 64 bit

    Всего записей: 11 | Зарегистр. 10-01-2011 | Отправлено: 11:04 23-06-2011 | Исправлено: grom8f, 11:09 23-06-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru