Контрольная 1 семестр

advertisement
ВАРИАНТ А07. Задание.
Разработать командный файл для интерпретатора командной строки CMD OC
Windows XP – Windows 7 для решения следующей задачи:
Удаление из каталога, заданного первым параметром, файлов, которые
присутствуют и в каталоге, указанным вторым параметром. Перед удалением
файлы скопировать в каталог, указанным третьим параметром КФ и
заархивировать архиватором 7z. Имена удаленных файлов вывести на экран.
ПРИМЕЧАНИЕ: В командном файле не использовать ввод данных с помощью
SET/p.
Текст командного файла.
@echo off
for /f "tokens=*" %%i in ('dir /a:-d /b %1') do (
if exist "%~2\%%i" ("c:\Program Files (x86)\7-zip\7z.exe" A -tzip c:\folder1.zip
"%~1\%%i" & copy /y "%~1\%%i" "%~3" & del "%~1\%%i"))
Команда ECHO задает режим вывода на экран сообщений команд. В нашем
случае, команда echo имеет параметр OFF, который отключает вывод на экран
сообщений команд.
Оператор FOR используется для задания цикла, в который будут передаваться
данные, полученные командой DIR. В нашем случае команда DIR имеет ключи
/a:-d (для вывода файлов, без каталогов) и /b (для вывода только названия
файлов). Эти названия файлов будут передаваться во входной поток команды
FOR. Команда FOR используется с ключом /f, поэтому она используется для
обработки строк вывода команды DIR. Ключ tokens=* говорит о том, что из
строки нужно брать все слова. Команда DIR будет обрабатывать файлы из
каталога, заданного первым параметром (%1).
В цикле будет проверяться условие. В каталоге, заданным вторым параметром
(%~2) (без кавычек) будет проверяться наличие файлов, присутствующих в
первом каталоге (if exist "%~2\%%i").
При выполнении этого условия, файлы из первого каталога добавляются в
архив folder1.zip, расположенный на диске С ("c:\Program Files (x86)\7zip\7z.exe" A -tzip c:\folder1.zip "%~1\%%i").
Также, эти файлы копируются в каталог, заданный третьим параметром
("%~1\%%i" "%~3"), а сами файлы удаляются (del "%~1\%%i").
Описание содержимого каталогов, используемого для проверки
правильности работы (тестирования) разработанного КФ.
Для проверки правильности работы командного файла помести в текущий
каталог 3 каталога:
1. folder1, в котором будут располагаться файлы: explore.exe, primer.bat,
RusTranslit.exe, text1.txt, Ultimate.xml.
2. folder2, в котором будут располагаться файлы: explore.exe, primer.bat,
RusTranslit.exe
3. folder3, в который будут копироваться идентичные файлы.
4. В каталог c:\Program Files (x86) установим программу 7zip.
Результаты, ожидаемые при правильной работе разработанного КФ.
После запуска интерпретатора командной строки, пользователь вводит
название командного файла (kr), затем название первого каталога (folder1),
затем название второго каталога (folder2), затем название третьего каталога
(folder3). При правильной работе командного файла файлы explore.exe,
primer.bat,
RusTranslit.exe,
находящиеся
в
первом
каталоге,
должны
скопироваться в третий каталог, т.к. эти файлы присутствуют во втором
каталоге. Кроме того, эти файлы должны быть заархивированы архиватором
7zip и удалены из первого каталога.
Результаты, полученные при выполнении разработанного КФ.
При проверке командного файла с помощью интерпретатора командной
строки Windows 7, полученные результаты совпали с прогнозируемыми
результатами.
Download