Лаб2Отчет
.docx1. Вывод на экран имен всех файлов с указанным расширением, находящихся в каталоге, имя которого задается при запуске командного файла первым параметром. Расширение файлов задается вторым параметром.
Командный файл
@ECHO OFF
DIR %1\*.%2
Результат
C:\Users\InsaNity>1.bat C:\Windows exe
Том в устройстве C не имеет метки.
Серийный номер тома: 5E46-602D
Содержимое папки C:\Windows
21.11.2010 07:24 71 168 bfsvc.exe
25.02.2011 10:19 2 871 808 explorer.exe
14.07.2009 05:39 15 360 fveupdate.exe
14.07.2009 05:39 733 696 HelpPane.exe
14.07.2009 05:39 16 896 hh.exe
14.07.2009 05:39 193 536 notepad.exe
14.07.2009 05:39 427 008 regedit.exe
11.02.2012 10:36 67 072 splwow64.exe
11.06.2009 01:41 49 680 twunk_16.exe
14.07.2009 05:14 31 232 twunk_32.exe
14.07.2009 05:14 9 728 winhlp32.exe
14.07.2009 05:39 10 240 write.exe
12 файлов 4 497 424 байт
0 папок 110 367 490 048 байт свободно
2. Среди введенных с клавиатуры целых чисел (использовать SET /P) найти наибольшее и наименьшее. Признак конца ввода – знак -.
Командный файл
@ECHO OFF
:BegLoop
SET /P Number=enter number
IF %number% ==- GOTO ExitLoop
IF NOT DEFINED MIN SET MIN=%number%
IF NOT DEFINED MAX SET MAX=%number%
IF %number% LEQ %MIN% SET MIN=%number%
IF %number% GEQ %MAX% SET MAX=%number%
GOTO BegLoop
:ExitLoop
ECHO Min = %MIN%
ECHO Max = %MAX%
Результат
C:\Users\InsaNity>2.bat
enter number 12
enter number 43
enter number 11
enter number 9
enter number -
Min = 9
Max = 43
3. В заданном каталоге и его подкаталогах найти общее количество подкаталогов. На экран вывести только требуемый результат.
Командный файл
@ECHO OFF
SET /A kol = 0
FOR /R %1 %%f IN (.) DO SET /A kol = kol + 1
Echo number of subdirectories: %kol%
Результат
C:\Users\InsaNity>3.bat C:\Windows
number of subdirectories: 19494
4. В каталогах, имена которых заданы первым и вторым параметрами командного файла, найти и вывести на экран имена файлов (расширения могут быть любые), присутствующие как в первом, так и во втором каталоге. Следует использовать только один оператор FOR.
Командный файл
@ECHO OFF
FOR %%i IN (%1\*.*) DO (IF EXIST %2\%%~NXi ECHO %%~NXi)
Результат
C:\Users\InsaNity>4.bat C:\qq C:\ww
01.jpg
02.jpg
setupact.log
setuperr.log
5. Вычисление и вывод на экран значения факториала целого числа, задаваемого при запуске КФ. Предусмотреть проверку заданного значения и при задании отрицательного значения или значения, превышающего максимально возможную величину, выводить соответствующие сообщения. Для проверки правильности вычислений использовать калькулятор.
Командный файл
@ECHO OFF
IF %1 LEQ 0 GOTO Exit
IF %1 GEQ 50 GOTO Exit
SET /A n =%1
SET /A f=%1
:BegLoop
IF %n% == 1 GOTO Loop
SET /A n = n-1
SET /A f = f*n
GOTO BegLoop
:Loop
ECHO %1!=%f%
Exit /b
:Exit
ECHO incorrect parameter
Exit /b
Результат
C:\Users\InsaNity>5.bat 4
4!=24
C:\Users\InsaNity>5.bat 100
incorrect parameter
6.1. Вывод списка DLL (хранящихся на доступном диске), созданных до 12.2008 размером до 12000 байтов.
6.2. Проверка наличия на диске в каталоге, указанном первым параметром КФ, файла Numbers.txt, содержащего 2 столбца целых чисел, столбцы располагаются с позиций 2 и 20 и отделены пробелами. Если файла нет – вывод сообщения. Если файл есть, создать новый файл, содержащий три столбца, в третий поместить сумму чисел из двух первых столбцов.
Командный файл
@ECHO OFF
IF NOT EXIST "%~1\Numbers.txt" ECHO File not found
FOR /F "tokens=1,2" %%i IN ('type "%~1\Numbers.txt"') DO (CALL :Loop %%i %%j)
PAUSE
EXIT
:Loop
SET /A x=%1+%2
ECHO %1 %2 %x%>>newfile.txt
EXIT /B
Исходный файл
12 23
45 67
34 43
123 56
1 678
Новый файл
12 23 35
45 67 112
34 43 77
123 56 179
1 678 679
C:\Users\InsaNity>dir D:\*.dll /s /a-d /-c /t:c
Том в устройстве D не имеет метки.
Серийный номер тома: 4834-46F2
Содержимое папки D:\Универ\Универ\Новая папка\BP\BP\Bin
04.02.2013 13:18 20992 ATI.DLL
04.02.2013 13:18 24932 DPMIMEM.DLL
04.02.2013 13:18 23552 DUAL8514.DLL
04.02.2013 13:18 175120 PBROWSER.DLL
04.02.2013 13:18 24064 STB.DLL
04.02.2013 13:18 16896 SVGA.DLL
04.02.2013 13:18 13840 TCOLORCC.DLL
04.02.2013 13:18 17408 TDVESA.DLL
04.02.2013 13:18 38912 TDWIN.DLL
04.02.2013 13:18 109788 TDXDEBUG.DLL
04.02.2013 13:18 14128 TOOLHELP.DLL
04.02.2013 13:18 20480 TSENG.DLL
04.02.2013 13:18 17920 ULTRA.DLL
04.02.2013 13:18 46352 WORKED1.DLL
04.02.2013 13:18 273408 WORKED2.DLL
04.02.2013 13:18 216256 WORKED3.DLL
04.02.2013 13:18 19168 WORKED4.DLL
04.02.2013 13:18 29760 WORKED5.DLL
04.02.2013 13:18 540384 WORKLIB1.DLL
04.02.2013 13:18 151072 WORKLIB2.DLL
04.02.2013 13:18 26016 WSIHOOK.DLL
04.02.2013 13:18 47616 WSIWIN.DLL
22 файлов 1868064 байт
Содержимое папки D:\Универ\Универ\Новая папка\lab8\BP\BP\Bin
04.02.2013 13:18 20992 ATI.DLL
1 файлов 20992 байт
Содержимое папки D:\Универ\Универ\Новая папка\PABC
04.02.2013 13:18 323584 vcl.dll
04.02.2013 13:18 1421824 VCLDesigner.dll
2 файлов 1745408 байт
Содержимое папки D:\Универ\Универ\Паскаль\BP\BIN
04.02.2013 13:18 20992 ATI.DLL
04.02.2013 13:18 24932 DPMIMEM.DLL
04.02.2013 13:18 23552 DUAL8514.DLL
04.02.2013 13:18 175120 PBROWSER.DLL
04.02.2013 13:18 24064 STB.DLL
04.02.2013 13:18 16896 SVGA.DLL
04.02.2013 13:18 13840 TCOLORCC.DLL
04.02.2013 13:18 17408 TDVESA.DLL
04.02.2013 13:18 38912 TDWIN.DLL
04.02.2013 13:18 109788 TDXDEBUG.DLL
04.02.2013 13:18 14128 TOOLHELP.DLL
04.02.2013 13:18 20480 TSENG.DLL
04.02.2013 13:18 17920 ULTRA.DLL
04.02.2013 13:18 46352 WORKED1.DLL
04.02.2013 13:18 273408 WORKED2.DLL
04.02.2013 13:18 216256 WORKED3.DLL
04.02.2013 13:18 19168 WORKED4.DLL
04.02.2013 13:18 29760 WORKED5.DLL
04.02.2013 13:18 540384 WORKLIB1.DLL
04.02.2013 13:18 151072 WORKLIB2.DLL
04.02.2013 13:18 26016 WSIHOOK.DLL
04.02.2013 13:18 47616 WSIWIN.DLL
22 файлов 1868064 байт
Содержимое папки D:\Универ\Универ\Паскаль\BP\EXAMPLES\COMMON\GREP
04.02.2013 13:18 13824 REGEXP.DLL
1 файлов 13824 байт
Содержимое папки D:\Универ\Универ\Паскаль\BP\PENWIN
04.02.2013 13:18 146240 MARS.DLL
04.02.2013 13:18 131552 PENWIN.DLL
2 файлов 277792 байт
Содержимое папки D:\Универ\Универ\Паскаль\PABC
04.02.2013 13:18 323584 vcl.dll
04.02.2013 13:18 1421824 VCLDesigner.dll
2 файлов 1745408 байт
Всего файлов:
52 файлов 7539552 байт
0 папок 266659549184 байт свободно