Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Получить информацию о размещении на логическом диске файлов-архивов (http://forum.oszone.net/showthread.php?t=273062)

Dimarik71 29-11-2013 14:39 2263782

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



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



Например,

task4.cmd f:\logfile f: rar zip 7z


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

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

Iska 30-11-2013 07:52 2264214

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sLogFile=%~1

if not defined sLogFile (
        echo Not specified [Log file]!
        echo.
        call :Usage
        exit /b 1
)

set sRootPath=%~2

if not defined sRootPath (
        echo Not specified [Root path]!
        echo.
        call :Usage
        exit /b 2
) else (
        if not exist "%sRootPath%\." (
                echo Root path [%sRootPath%] not found.
                exit /b 3
        )
)

set sExt=%~3

if not defined sExt (
        echo Not specified any extension!
        echo.
        call :Usage
        exit /b 4
)

set sMasks=

:Repeat
set sExt=%~3

if defined sExt (
        set sMasks=!sMasks! "%sRootPath%\*.!sExt!"
        shift /3
        goto :Repeat
)

echo Log file:  [%sLogFile%]
echo Root path: [%sRootPath%]
echo Masks:    [%sMasks%]

2>nul >"%sLogFile%" dir /s /b %sMasks%
if exist "%sLogFile%" <"%sLogFile%" more

endlocal
exit /b 0

:Usage
        echo Usage:  %~nx0 ^<Log file^> ^<Root path^> ^<Extension^> [^<Extension^> [^<Extension^> ...]]
        echo Example: %~nx0 "E:\Песочница\0333\logfile.txt" "E:\Песочница" "rar" "zip" "7z"
        exit /b 0



Время: 17:25.

Время: 17:25.
© OSzone.net 2001-