Войти

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


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



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



Например,

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


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

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

Iska
30-11-2013, 07:52
@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




© OSzone.net 2001-2012