Поиск на диске файлов с указанными расширениями имени с протоколированием

Тема в разделе "Пакетные файлы CMD, BAT", создана пользователем lox-ness, 17 дек 2013.

  1. lox-ness
    Оффлайн

    lox-ness Новый пользователь

    Сообщения:
    4
    Симпатии:
    0
    Помогите пожалуйста написать командный файл.

    Получить информацию о размещении на логическом диске файлов -архивов следующих типов: rar, zip, 7zи сохранить пути к этим файлам в текстовом файле-протоколе.

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

    В сценарии предусмотреть:

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

    - удаление ранее созданного файла протокола, если он существует;

    - проверку успешного созданного нового файла-протокола и постраничное изображение его на экране.
     
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    Код (DOS):
    @echo off
    :: Проверяю задано ли минимальное кол-во аргументов
    if "%~1"=="" goto using
    if "%~2"=="" goto using
    if "%~3"=="" goto using
    :: Если файл-протокол уже существует, удалить его
    if exist "%~1" del /F "%~1"
    :begin
    :: Перечисляю все файлы на заданном диске по расширению имени
    :: 2>NUL нужна, чтобы не выводить такую ошибку, как "Файлы не найдены"
    dir /B /A-D "%~2\*.%~3" 2>NUL >> "%~1"
    :: Смещаю 4-й и дальше аргументы на 3-й
    shift /3
    :: Если аргумент непустой, перехожу к метке begin и читаю следующее расширение имени
    if "%~3" neq "" goto begin
    :: Проверка наличия протокола
    if not exist "%~1" (echo Протокол не создан. Искомых файлов нет на томе %~2& Exit /B)
    :: Постраничный вывод на экран содержимого протокола (для пролистывания нажмите SPACE)
    type "%~1" | more
    Exit /B

    :using
      echo Использование:
      echo %~nx0 "Путь к файлу протокола" "Имя логического диска" "Расширение имени 1" "Расширение имени 2" ...
      echo Например:
      echo %~nx0 "c:\temp\file.log" "d:" "rar" "zip" "7z"
    Exit /B
     
    Kиpилл нравится это.
  3. lox-ness
    Оффлайн

    lox-ness Новый пользователь

    Сообщения:
    4
    Симпатии:
    0
    Спасибо, но в данном виде не отрабатывает, суть понятна
     
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    Напишите, каким образом запускали бат-файл?
     
  5. lox-ness
    Оффлайн

    lox-ness Новый пользователь

    Сообщения:
    4
    Симпатии:
    0
    task.cmd c:\111.txt g: zip rar 7z таким образом
    --- Объединённое сообщение, 18 дек 2013, Дата первоначального сообщения: 18 дек 2013 ---
    Добавили параметр к dir /s и все вроде стало искать во всех каталогах Спасибл
    --- Объединённое сообщение, 18 дек 2013 ---
    Еще раз спасибо за помощь
     
  6. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.307
    Да, простите, был невнимателен.
     
    lox-ness нравится это.

Поделиться этой страницей