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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

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

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    YuS_2



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

    Цитата:
    но ИМХО в данном случае это будет пальба из пушки по воробьям, да и технически синтаксиса CMD должно хватить с головой...

    Отчего же пушкой? Это вполне себе штатное консольное средство автоматизации... вот процитирую одного человека с другого форума:

    Код:
    Впрочем, всё это не имеет никакого значения, поскольку, начиная с версии Windows 7, powershell ( основное консольное средство автоматизации Windows ) входит в штатный набор и нет никаких причин использовать интерпретатор cmd, а преподавать его в вузах в 17-ом году 21-го века -  
    это просто преступление против прогрессивного человечества.

    с чем, лично я, согласен.
     
    Например, для конкретного случая:
    powershell v3.0:

    Код:
    dir -r -dir|%{dir $_.fullname -file}

    или без привязки запуска сценария в конкретном каталоге:

    Код:
    $fld = 'C:\TEST\A'
    dir $fld -r -dir|%{dir $_.fullname -file}

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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:13 26-10-2017 | Исправлено: YuS_2, 13:16 26-10-2017
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2, штатное-то штатное... Только вот один из реципиентов батника служит машина под w2k3, на которую дышать страшно, не то что комплект PS ставить
     
    Подставу с остановкой выполнения решил через классический CALL.
     
    А для более новых машин сделаю адаптированную версию под PS

    Всего записей: 4264 | Зарегистр. 22-06-2002 | Отправлено: 14:07 26-10-2017
    alex52mail

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Какую переменную использовать для пути к файлам, из ОС запущенной  с виртуального  образа vhdx, лежачего рядом с файлами, на которые надо сослаться.  Надо именно переменная раздела где находится образ, т.к. образ может запускаться с разных разделов, флешки.  

    Всего записей: 1567 | Зарегистр. 04-09-2015 | Отправлено: 17:25 26-10-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    для начала, надо определить путь к образу. Попробуйте так:
    for /f "delims=\ tokens=1,2,3,*" %j in ('echo list vdisk^|diskpart^|findstr /i volume') do @echo %k\%l\%m
     
    Добавлено:
    вот нашёл время дописать. Жаль,всё таки, что diskpart всегда долго загружается.
    Код:

    @echo off
    for /f "delims=\ tokens=1,2,3,*" %%j in ('echo list vdisk^|diskpart^|findstr /i volume') do SET vhdPath=%%m
    for /f %%h in ('mountvol ^| find ":\"') do if exist "%%h%vhdPath%" SET vhdPath=%%h%vhdPath%
    echo vhd path is %vhdPath%
    echo save it to file.
    pause

    если в системе смонтирован один образ, то должно работать, вроде.

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 18:51 26-10-2017 | Исправлено: Inoz2000, 06:38 27-10-2017
    Lepar79



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

    Цитата:
    последующие строки батника уже не выполняются, в чем может быть засада?
    Даже не понимаю, о чем ты. Хотешь отправить вывод в файл, так прям в самом скрипте и отправляй.
    Переход на выход в скрипте не нужен. Ставишь на выбор:
    GOTO :EOF
    EXIT /b
     
    И не нужно никаких "стартовых батников". Пиши все в одном скрипте.
     
    Обезьянок (@)то зачем в скрипт столько натолкал?

    Всего записей: 80 | Зарегистр. 18-09-2017 | Отправлено: 20:36 26-10-2017
    Inoz2000



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex52mail
    дело ещё и в том, какой вывод получаете командой list vdisk
    или просто Буква_диска:\ или что-то типа \Device\HarddiskVolume#\

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 15:15 27-10-2017
    chatt

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, помогите. Через Live CD Mini Windows XP, Hirens tools запускаю программу  Victoria. Это я делаю руками.
     
    Но нужно , чтобы через 4 часа из RAM-диска скопировался файл B:\Temp\HBCD\LOGS\eventlog.txt в корень диска C:\ и комп выключился
     
    Нужно, чтобы лог-файл результатов сканирования винта сохранился на флешку (диск C) , т.к. он записывается на RAM в виртуальную память

    Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 13:11 31-10-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    chatt
    Цитата:
    timeout /t 14400
    copy /y B:\Temp\HBCD\LOGS\eventlog.txt c:\
    shutdown /s /f /t 0

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 13:23 31-10-2017 | Исправлено: Pasha_ZZZ, 13:43 31-10-2017
    Inoz2000



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

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 13:36 31-10-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Inoz2000
    Timeout - TechNet - Microsoft

    Цитата:
    Назначение: Windows 7, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 13:43 31-10-2017
    NIKZZZZ



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

    Цитата:
    Через Live CD Mini Windows XP

    Боюсь, что там нет не только timeout, но и shutdown не работает.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:45 31-10-2017
    chatt

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    "timeout" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    sutdown error unrecognized parameter
     
    Возможно ли решать через батник такую задачку? А то комп нужно оставить, чтобы выключился.

    Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 13:52 31-10-2017 | Исправлено: chatt, 13:54 31-10-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Ну тогда вот:
       

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 13:54 31-10-2017
    chatt

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Это да, но директория и имя файла задается на RAM-диске. А нужно на физический скопировать.

    Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 13:56 31-10-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    chatt
    Кто-то мешает прописать полный путь к каталогу?

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 13:56 31-10-2017
    mbku

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть куча каталогов, в них куча подкаталогов и там файлы, есть в разных местах и одинаковые файлы. Нужно все эти файлы скопировать в один каталог при этом заменяя старые файлы более новыми, если вдруг одинаковые. Это можно как-то сделать командой xcopy /d.  
     
    Но при копировании нужно:
    Переименовывать файлы по названию каталога откуда он был скопирован (Ну типа 1.txt --> 1(DIR23).txt)
    Чтоб знать откуда он был Скопирован этот более новый файл, при этом чтоб более старые файлы не копировались.
    Ну или чтоб в log файле каком-нибудь фиксировалось название этого каталога, не все катологи, где файл есть, а именно где он более новый.

    Всего записей: 26 | Зарегистр. 03-08-2007 | Отправлено: 17:02 31-10-2017
    chatt

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Полный путь не поддерживается.
    Решил задачу совсем иначе - скопировал из временной паки RAW-диска папку HBCD на флешку)

    Всего записей: 186 | Зарегистр. 28-05-2016 | Отправлено: 17:06 31-10-2017
    Smitis



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

    Цитата:
    Возможно ли решать через батник такую задачку? А то комп нужно оставить, чтобы выключился.

    Гибрид cmd+js для паузы

    Код:
    @if (true == false) @end /*
    @echo off
    %SystemRoot%\System32\cscript.exe //nologo //e:jscript "%~f0" 14400
    copy /y B:\Temp\HBCD\LOGS\eventlog.txt c:\
    shutdown /s /f /t 0  
    exit /b
    */
    WScript.Sleep(WScript.Arguments(0)*1000);

     
     


    ----------
    Разум когда-нибудь победит

    Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:33 31-10-2017
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    chatt
    Если программа пишет файл в Temр, можно просто переопределить эту переменную, запуская ее батником

    Код:
    set temp=c:
    proga.exe  


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 02:29 01-11-2017
    MH100181Q



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет  
     Не разбираюсь в батниках, наваял батник для консольки:

    Код:
    @echo off
    "%~dp0_rawzor.exe" "-c" "-i" %*

    Задумка такова, батник лежит рядом с консолькой  и на него кидаются файлы (один или несколько), проблема в том, сколько бы я файлов не перетащил на батник, обрабатывается только один файл, а остальные не видит. и пропускает:

    Код:
    100% done
    1 files compressed, 0 files skipped.

     
    Подозреваю что всё-же дело в переменной %*, а чем её заменить не знаю.
     
    Папка с консолькой и батником будет путешествовать по компьютерам и папкам, поэтому прописывать в батнике абсолютные пути для меня не приемлимо.
     
    В спецификации к консольной версии:
     
    Код:
     -c [ --compress ]        Compress input files.
      -d [ --decompress ]      Decompress input files.
      -i [ --input ] arg       Input files and folders.
                               (Can be used multiple times.)

    Всего записей: 1420 | Зарегистр. 29-04-2008 | Отправлено: 21:17 01-11-2017
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru