Справка по batch
1. Белько И. В. Высшая математика для экономистов, I семестр: Экспресс – курс / И. В. Белько, К. К. Кузьмич. – М.: Новое знание, 2002. – 140 с. 2. Сборник задач по линейной алгебре / Под ред. С. К. Соболева. М.: Изд-во МГТУ, 1991. 3. Лунгу К. Н., Письменный Д. Т., Федин С. Н., Шевченко Ю. А. Сборник задач по высшей математике. 1 курс. – 3-е изд., испр. и доп. – М.: Айрис-пресс, 2004. – 576 с. 4. Ермаков В. И. и др. Сборник задач по высшей математике для экономистов: Учебное пособие / Под ред. В. И. Ермакова. – М.: ИНФРА-М, 2005. – 575 с. 5. Высшая математика для экономистов: Учеб. пособие для вузов / Н. Ш. Кремер, Б. А. Путко, И. М. Тришин, М. Н. Фридман; под ред. Н. Ш. Кремера. – М.: Банки и биржи, ЮНИТИ, 1997. – 439 с. 6. Практикум по высшей математике для экономистов: Учеб. пособие для вузов / Н. Ш. Кремер, И. М. Тришин, Б. А. Путко и др.; под ред. Н. Ш. Кремера. – М.: ЮНИТИ-ДАНА, 2004. – 423 с.
Лабораторная работа №2: скрипты Используя средства пакетной обработки (скипты), предоставляемые ОС, реализовать следующие действия 1. Переименовать все файлы расширения jpg в заданной директории в 001.jpg, 002.jpg, … Количество ведущих нулей и путь к директории с файлами задаёт пользователь. 2. Переместить все файлы в заданной директории, в имени которых есть число больше, чем заданное пользователем, в поддиректорию с названием Greater (создать, если не существует). Путь к директории с файлами задаёт пользователь. 3. Переместить все файлы в заданной директории, в имени которых не присутствуют числа, в поддиректорию с названием, которое задал пользователь (создать, если не существует). Путь к директории с файлами задаёт пользователь. 4. Удалить в заданной директории все файлы заданного расширения, размер которых больше, чем заданный пользователем. Путь к директории с файлами и расширение задаёт пользователь. 5. Записать в текстовый файл даты создания и имена файлов, размер которых меньше заданного пользователем. Файл открыть в редакторе, имя которого указал пользователь (например, Notepad, WordPad, …). Путь к директории с файлами задаёт пользователь. 6. Записать в текстовый файл размеры и имена файлов, размер которых больше заданного пользователем. Файл открыть в редакторе, имя которого указал пользователь (например, Notepad, WordPad, …). Путь к директории с файлами задаёт пользователь. 7. Переместить все файлы в заданной директории, в имени которых есть число меньше, чем заданное пользователем, в поддиректорию с названием Less (создать, если не существует). Путь к директории с файлами задаёт пользователь. 8. Переместить все файлы в заданной директории, в имени которых присутствуют числа, в поддиректорию с названием, которое задал пользователь (создать, если не существует). Путь к директории с файлами задаёт пользователь. 9. Удалить в заданной директории все файлы заданного расширения, размер которых меньше, чем заданный пользователем. Путь к директории с файлами и расширение задаёт пользователь. 10. Скопировать файлы из одной директории в другую. Если имя копируемого файла совпало с именем уже существующего в директории назначения, заменить только в случае, если копируемый файл новее согласно дате создания. Путь к директориям указывает пользователь.
Справка по batch echo – вывод на консоль @echo off – костыль, чтобы вырубить stdout в консоль у команд скрипта (и тем самым не мусорить в консоль) > – перенаправление в файл | – пайп %1 – параметр set – установка значения set var=val %var% – взятие значения It is possible to retrieve specific characters from a string variable. Syntax %variable:~ num_chars_to_skip % %variable:~ num_chars_to_skip, num_chars_to_keep % This can include negative numbers: %variable:~ num_chars_to_skip, - num_chars_to_keep % %variable:~ - num_chars_to_skip, num_chars_to_keep % %variable:~ - num_chars_to_skip, - num_chars_to_keep % A negative number will count backwards from the end of the string. set \a – арифметка:
Arithmetic expressions (SET /a) The expression to be evaluated can include the following operators:
+ Add set /a "_num=_num+5" += Add variable set /a "_num+=5" - Subtract (or unary)set /a "_num=_num-5" -= Subtract variable set /a "_num-=5" * Multiply set /a "_num=_num*5" *= Multiply variable set /a "_num*=5" / Divide set /a "_num=_num/5" /= Divide variable set /a "_num/=5" % Modulus set /a "_num=5%%2" %%= Modulus set /a "_num%%=5" ! Logical negation 0 (FALSE) ⇨ 1 (TRUE) and any non-zero value (TRUE) ⇨ 0 (FALSE) ~ One's complement (bitwise negation) & AND set /a "_num=5&3" 0101 AND 0011 = 0001 (decimal 1) &= AND variable set /a "_num&=3" | OR set /a "_num=5|3" 0101 OR 0011 = 0111 (decimal 7) |= OR variable set /a "_num|=3" ^ XOR set /a "_num=5^3" 0101 XOR 0011 = 0110 (decimal 6) ^= XOR variable set /a "_num=^3" << Left Shift. (sign bit ⇨ 0) >> Right Shift. (Fills in the sign bit such that a negative number always remains negative.) Neither ShiftRight nor ShiftLeft will detect overflow. <<= Left Shift variable set /a "_num<<=2" >>= Right Shift variable set /a "_num>>=2"
() Parenthesis group expressions set /a "_num=(2+3)*5" , Commas separate expressions set /a "_num=2,_result=_num*5"
If a variable name is specified as part of the expression, but is not defined in the current environment, then SET /a will use a value of 0. FOR %%parameter IN (set) DO command – цикл
@echo off SET count=1 FOR /f "tokens=*" %%G IN ('dir /b') DO (call:subroutine "%%G") GOTO:eof
:subroutine echo %count%:%1 set /a count+=1 GOTO:eof
Разбор строки по символам: @ECHO OFF :: string terminator: chose something that won't show up in the input file SET strterm=___ENDOFSTRING___ :: read first line of input file SET /P mytext=<C:\MYTEXTFILE.txt :: add string terminator to input SET tmp=%mytext%%strterm% :loop :: get first character from input SET char=%tmp:~0,1% :: remove first character from input SET tmp=%tmp:~1% :: do something with %char%, e.g. simply print it out ECHO char: %char% :: repeat until only the string terminator is left IF NOT "%tmp%" == "%strterm%" GOTO loop
Взять дату файла: for %a in (MyFile.txt) do set FileDate=%~ta
Взять размер файла: for %a in (MyFile.txt) do set FileSize=%~zaВообще, полезно показать for /? Ну и дать мастер-класс по гуглению, найдя документацию по for, if, …
|