I need some help in writing a batch file.
I have a path stored in a variable root as follows:
set root=D:WorkRoot
Then I am changing my working directory to this root as follows:
cd %root%
When I execute this batch file from anywhere on the D drive this is done successfully. But when I execute the same batch file from some other drive, cd %root% doesn’t work.
Is there a way I can get the drive letter from the root variable? I can then change the current directory to this drive first and then cd %root% shall work.
bubble
3,3685 gold badges29 silver badges51 bronze badges
asked Feb 28, 2011 at 5:24
Specify /D
to change the drive also.
CD /D %root%
answered Feb 28, 2011 at 5:27
Andriy MAndriy M
75.6k17 gold badges94 silver badges152 bronze badges
3
Just use cd /d %root%
to switch driver letters and change directories.
Alternatively, use pushd %root%
to switch drive letters when changing directories as well as storing the previous directory on a stack so you can use popd
to switch back.
Note that pushd
will also allow you to change directories to a network share. It will actually map a network drive for you, then unmap it when you execute the popd
for that directory.
answered Feb 28, 2011 at 5:26
GabeGabe
84.5k12 gold badges139 silver badges236 bronze badges
Try this
chdir /d D:WorkRoot
Ryan M♦
17.8k31 gold badges64 silver badges73 bronze badges
answered Sep 12, 2014 at 12:07
stingray_stingray_
5645 silver badges13 bronze badges
2
A simpler syntax might be
pushd %root%
answered Jul 15, 2019 at 15:51
NapkinBobNapkinBob
6327 silver badges19 bronze badges
0
In my batch file I needed to :
- Change dir to other directory
- run commands in bat file — do some work in that directory
- change back to my original directory
pushd
solved this with the help of popd
bat file example
pushd <my-working-directory>
do command
do other command
...
popd
popd
moved me back to original directory.
answered Feb 1, 2022 at 21:54
raddevusraddevus
8,1697 gold badges64 silver badges82 bronze badges
2015-03-30: Edited – Missing information has been added
To retrieve the current directory you can use the dynamic %cd%
variable that holds the current active directory
set "curpath=%cd%"
This generates a value with a ending backslash for the root directory, and without a backslash for the rest of directories. You can force and ending backslash for any directory with
for %%a in ("%cd%") do set "curpath=%%~fa"
Or you can use another dynamic variable: %__CD__%
that will return the current active directory with an ending backslash.
Also, remember the %cd%
variable can have a value directly assigned. In this case, the value returned will not be the current directory, but the assigned value. You can prevent this with a reference to the current directory
for %%a in (".") do set "curpath=%%~fa"
Up to windows XP, the %__CD__%
variable has the same behaviour. It can be overwritten by the user, but at least from windows 7 (i can’t test it on Vista), any change to the %__CD__%
is allowed but when the variable is read, the changed value is ignored and the correct current active directory is retrieved (note: the changed value is still visible using the set
command).
BUT all the previous codes will return the current active directory, not the directory where the batch file is stored.
set "curpath=%~dp0"
It will return the directory where the batch file is stored, with an ending backslash.
BUT this will fail if in the batch file the shift
command has been used
shift
echo %~dp0
As the arguments to the batch file has been shifted, the %0
reference to the current batch file is lost.
To prevent this, you can retrieve the reference to the batch file before any shifting, or change the syntax to shift /1
to ensure the shift operation will start at the first argument, not affecting the reference to the batch file. If you can not use any of this options, you can retrieve the reference to the current batch file in a call to a subroutine
@echo off
setlocal enableextensions
rem Destroy batch file reference
shift
echo batch folder is "%~dp0"
rem Call the subroutine to get the batch folder
call :getBatchFolder batchFolder
echo batch folder is "%batchFolder%"
exit /b
:getBatchFolder returnVar
set "%~1=%~dp0" & exit /b
This approach can also be necessary if when invoked the batch file name is quoted and a full reference is not used (read here).
set papka = %cd%
echo %papka%
pause
Выводит путь C:Windowssystem32
Но ведь BATник я запускаю на рабочем столе.
Как узнать текущий путь?
-
Вопрос задан20 июн. 2022
-
2883 просмотра
Именно так и узнавать текущий путь: %CD%
Это не важно где лежит батник, т.к. исполняется не сам батник, а cmd.exe. Т.е. когда вы 2ПКМите на батнике, лежащем на раб.столе запускается команда: cmd.exe /c c:usersuserDesktopfile.bat
При этом путь где лежит батник никакого отношения к текущему пути не имеет. cmd.exe обычно запускается с текущим каталогом %SystemRoot%System32
.
Чтоб перейти в каталог, где лежит батник, используйте команду: cd /d "%~dp0"
Пути можно получать из параметров батника, указанным способом, то же самое можно делать для переменных цикла, и параметров процедур. Список доступных модификаторов (буквы после %~
доступны в описании команд call и for.
Пригласить эксперта
команда ls, или же через проводник
-
Показать ещё
Загружается…
24 мая 2023, в 10:07
3000 руб./за проект
24 мая 2023, в 09:29
6000 руб./за проект
24 мая 2023, в 09:07
900 руб./в час
Минуточку внимания
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
1 |
|
Найти файл и папку09.07.2014, 18:04. Показов 8628. Ответов 25
Люди добрые, вопрос такой. Крик о помощи! Допустим есть файл 777.exe, где-то на диске С: и в какой-то папки
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
09.07.2014, 18:04 |
Ответы с готовыми решениями: Найти файл, и в папку где лежит этот файл скопировать другой файл) Найти определенный файл, переименовать и переместить его в другую папку Как bat-ником перенести файл в папку, при том так чтобы это было не копирование файла в папку? Найти файл лога в папках пользователя, переименовать и переместить его в другую папку 25 |
18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
09.07.2014, 19:23 |
2 |
Че это, очередная мегавирусяка?
0 |
Модератор 4909 / 1965 / 384 Регистрация: 06.01.2013 Сообщений: 4,651 |
|
09.07.2014, 19:26 |
3 |
и переместить туда файлы с флешки и делать именно из нее запуск файлов и регистрацию допустим .dll А теперь этот же отрывок, только человеческим языком опишите. Конкретнее: что откуда и куда нужно запускать. А также – при каких условиях.
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
09.07.2014, 19:28 [ТС] |
4 |
Совсем нет.
0 |
Модератор 4909 / 1965 / 384 Регистрация: 06.01.2013 Сообщений: 4,651 |
|
09.07.2014, 19:33 |
5 |
expressq12, так все равно ТЗ не понятно. Все настолько сумбурно описано.
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
09.07.2014, 19:39 [ТС] |
6 |
FraidZZ, Добавлено через 6 минут
0 |
Eva Rosalene Модератор 4909 / 1965 / 384 Регистрация: 06.01.2013 Сообщений: 4,651 |
||||
09.07.2014, 19:41 |
7 |
|||
0 |
expressq12 0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
||||||||
09.07.2014, 21:19 [ТС] |
8 |
|||||||
FraidZZ, Добавлено через 4 минуты Добавлено через 1 минуту
Добавлено через 39 минут Добавлено через 34 минуты Добавлено через 1 минуту
0 |
Eva Rosalene Модератор 4909 / 1965 / 384 Регистрация: 06.01.2013 Сообщений: 4,651 |
||||
09.07.2014, 23:41 |
9 |
|||
expressq12, попробуйте так
0 |
expressq12 0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
||||||||||||
10.07.2014, 08:01 [ТС] |
10 |
|||||||||||
FraidZZ, ______________ Добавлено через 3 часа 0 минут Добавлено через 4 часа 22 минуты
Делает все что мне нужно, но не грузит AD2.bat в автозагрузку ( нужно что бы он 1 раз появился после перезагрузки этого bat файла и все ) Что делать?(( Добавлено через 46 минут
Как сделать?
?????????????
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
11.07.2014, 14:47 [ТС] |
11 |
И все молчат ((
0 |
18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
11.07.2014, 15:19 |
12 |
Здравствуйте, expressq12 !!! Дело в том, что перед тем как делать манипуляции по перемещению файлов, нужно: – завершить работу все процессов, работающих с той папки У меня вопрос: если это будет делаться в автоматическом режиме, Спрашиваю, т.к. вся ответственность будет лежать на Вас в этом случае.
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
11.07.2014, 15:26 [ТС] |
13 |
Dragokas,
0 |
Dragokas 18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
||||
11.07.2014, 15:33 |
14 |
|||
Библиотеки нельзя перемещать, пока они используются системой, поэтому нужно снимать регистрацию сначала:
Ок. Скажите, каким образом запускается ПО – вручную или автозапуском во время старта ОС ?
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
11.07.2014, 15:37 [ТС] |
15 |
Dragokas, и вручную и автозапуском ))
0 |
18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
11.07.2014, 15:45 |
16 |
Хорошо. Тогда будем ориентироваться, что из автозапуска программу не будут удалять. Зайдите в редактор реестра: Win + R и набрать regedt32 Нужно искать только эту часть без кавычек, например: C:1234pilot777.exe ____________________ Как найдете, нажмите Файл, экспорт, любое имя файла.
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
11.07.2014, 15:50 [ТС] |
17 |
Dragokas, с удовольствием но я Дома) Можно обойтись без реестра?
0 |
Dragokas 18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
||||
11.07.2014, 15:51 |
18 |
|||
______
Откроется окно. Добавлено через 1 минуту
Dragokas, с удовольствием но я Дома) Можно обойтись без реестра? Ок. Давайте попробуем без него.
0 |
0 / 0 / 0 Регистрация: 27.06.2014 Сообщений: 16 |
|
11.07.2014, 15:53 [ТС] |
19 |
Dragokas, давай скайп , я не понимаю что ты говоришь)
0 |
18041 / 7644 / 891 Регистрация: 25.12.2011 Сообщений: 11,426 Записей в блоге: 17 |
|
11.07.2014, 15:56 |
20 |
Буква флешки может оказаться разная.
0 |
1. Командная строка Windows
1. Командная строка Windows
В данном разделе мы познакомимся с возможностями командной строки операционной системы Microsoft Windows на примере часто используемых команд.
Студентам предстоит освоить следующие навыки:
работа с файловой системой в командной строке;
создание архивных и пакетных файлов;
настройка переменных среды окружения.
На защите лабораторной работы студент должен уметь выполнять любое задание и объяснять смысл выполненной команды.
Основные понятия
Интерфейс операционной системы (ОС) — это средство общения пользователя с ОС. С помощью интерфейса пользователь обращается к различным функциям ОС, таким как запуск программ или копирование файлов, и получает сообщения ОС.
Командная строка — это интерфейс ОС, работающий в текстовом режиме следующим образом:
— ОС выводит на экран приглашение;
— пользователь вводит команду и нажимает [Enter];
— ОС выводит результаты на экран.
Приглашение к вводу команд содержит имя диска и текущий каталог, например:
C:UserValentin>
Пользователь вводит с клавиатуры команду и ее параметры, разделенные пробелами, например:
dir /b *.txt
Параметры (аргументы) командной строки — это части строки, разделенные пробелами. Их нумеруют, начиная с нуля. Нулевой параметр — это имя команды или исполняемого файла. Следующие за ним параметры указывают режим выполнения команды и сообщают имя объекта, с которым будет выполняться операция.
Команды ОС, например dir, выполняет сама ОС, поэтому на диске нет отдельных файлов для каждой команды, например dir. exe. К исполняемым файлам относятся прикладные программы (приложения) *.com и *.exe, а также пакетные файлы *.bat и *.cmd. Пакетные файлы — это текстовые файлы, содержащие последовательность команд ОС.
Регистр букв. Команды можно вводить и заглавными (большими) и строчными (маленькими) буквами — командной строке Windows это будет понятно: CD, cd, Cd, cD, см. рис.
Рис. Одна команда в разном регистре
Некоторые ОС могут различать большие и маленькие буквы в названиях команд, файлов и каталогов. Это касается и разных языков программирования.
В квадратных скобках в описании команд указывают необязательные параметры. При вводе команды сами квадратные скобки писать не нужно, см. рис.
Рис. Квадратные скобки не используем!
Квадратные скобки — это первая проверка внимательности и понимания. Если студент читает справку по команде и потом вводит квадратные скобки, значит он ничего не понял. И таких студентов с каждым годом встречается всё больше.
На самом деле в процессе обучения в вузе мы тренируем студентов читать и понимать прочитанное. В школе от учеников требуется только скорость чтения и ответов. А здесь мы требуем понимание. Придётся использовать голову не только для еды, но и для обучения.
Задание
Найдите в Википедии сведения про регистр букв и чувствительность к регистру символов.
Запуск командной строки
Командную строку можно запустить разными способами:
1) через главное меню Пуск:
Start — Windows System — Command Prompt
2) через поле поиска:
Type here to search — cmd — Command Prompt
4) с помощью «горячих клавиш»:
нажмите комбинацию клавиш [Win + R] — Run — cmd — [OK] или [Enter], см. рис.
Рис. Запуск командной строки
Окно командной строки содержит приглашение, содержащее полный путь к текущему каталогу. Мигающий курсор указывает место для ввода следующей команды, см. рис. Чтобы просмотреть предысторию, можно использовать полосу прокрутки.
Нажав кнопку в левом верхнем углу окна, можно изменять настройки шрифта, а также копировать и вставлять текст через буфер обмена.
Чтобы закрыть командное окно, нажмите кнопку [x] в правом верхнем углу окна либо введите на клавиатуре команду exit — «выйти». В переводе эта команда могла бы звучать так: «Закройте это окно!»
Рис. Окно командной строки
Задание
— Запустите командную строку описанными способами.
— Настройте размер шрифта и цвет текста и фона.
— Введите команду ver и нажмите [Enter].
— Запишите версию ОС.
— Найдите в командном окне все элементы интерфейса:
— — Приглашение
— — Мигающий курсор
— — Команду
— — Ответ ОС
— — Полосу прокрутки
— Закройте командное окно.
Справочная система
Команда help выводит на экран описание указанной команды. Например, чтобы изучить команду dir, нужно ввести команду:
help dir
Длинный текст справки выводится на экран постранично.
Некоторые команды и программы сами могут выводить справку при указании вопросительного знака в качестве параметра:
dir /?
Квадратные скобки в тексте справки отмечают необязательные аргументы. Например, выражение
dir [диск: ]
означает, что допускаются следующие варианты использования команды dir:
dir
dir c:
dir d:
Задание
Вызовите справку для команды dir описанными выше способами.
История ввода команд
Все команды, введенные течение текущего сеанса работы командного окна, сохраняются в памяти. Их можно вернуть стрелками [Вниз] и [Вверх] и снова выполнить.
Содержимое командной строки можно редактировать клавишами [Влево], [Вправо], [Home], [End], [Del], [BackSpace].
Клавиша [Backspace] находится на клавиатуре над клавишей [Enter]. Эта клавиша удаляет символ слева от курсора.
Английское слово backspace означает «вернуться на одну позицию назад». Эта клавиша была ещё на печатных машинках, см. рис. Тогда она просто передвигала печатающую головку на один символ влево. Русское название — «Забой». Можно было вернуться и напечатать другую букву поверх первой — если надо было исправить ошибку — то есть «забить» одну букву другой, перепечатать символ. А теперь на компьютере это ещё и стирание символа слева от курсора — с той же целью — исправить опечатку.
Обратите внимание на расположение букв на клавишах печатной машинки и на компьютерной клавиатуре. И для этого есть причина. В центре расположены буквы, которые встречаются чаще всего — чтобы не приходилось далеко передвигать пальцы при печати. Ближе к краям находятся более редкие буквы.
Клавиша «Забой» тоже осталась на своём привычном месте.
Рис. Клавиша «Забой» на печатающей машинке
Клавиша [Del] удаляет символ справа от курсора.
Для полного удаления текущей команды нажмите [Esc].
Задание
— Используя клавиши [Up] и [Down], просмотрите историю ввода.
— Верните команду help dir
— Отредактируйте команду, чтобы получить help help
— Нажмите [Enter]
— Верните предыдущую команду
— Нажмите [Esc]
— Прочитайте описание [Backspace] на Википедии
Команда DIR
Для просмотра содержимого каталога используется команда dir. Английское слово directory переводится как «каталог, папка, директория».
На экран выводится список всех каталогов и файлов, находящихся в текущем каталоге диска с указанием их расширения и размеров, даты и времени создания, см. рис.
Каталоги помечаются символами <DIR>.
Примеры использования команды:
dir /b — вывод только названий файлов
dir /d — вывод списка в несколько колонок
dir /oe-s — отсортированный по расширениям список имен каталогов и файлов, а среди них — сортировка от больших файлов к меньшим.
Рис. Содержимое каталога
Задание
— Введите следующие команды:
dir
dir c:
dir /b c:
— Обратите внимание на результаты выполнения команд
— Вызовите справку для команды dir
— Выведите на экран список файлов и каталогов диска D:, отсортированных по расширению в обратном алфавитном порядке;
— Выведите на экран список файлов и каталогов диска D:, отсортированных по дате — от ранних к поздним
— Выведите на экран список файлов и каталогов диска D:, сгруппировав каталоги после файлов
— Выведите на экран в алфавитном порядке имена скрытых файлов
— Выведите на экран в алфавитном порядке имена системных файлов
Команда CD
Для перехода из каталога в каталог используют команду cd. Это сокращение от английских слов Change Directory — «смените каталог».
Как и многие другие команды ОС, это выражение действительно звучит как команда в армии: «Рядовой Петров, смените каталог!»
Команда cd без параметров выводит имена текущего диска и папки.
Примеры использования команды:
cd c:tmp — переход в каталог c:tmp из любого каталога диска c:
cd /d c:tmp — переход в каталог c:tmp из любого каталога любого диска
cd tmp — переход в подкаталог tmp, расположенный в текущем каталоге
cd.. — переход на один уровень выше по дереву файлов
cd — переход в корневой каталог текущего диска
d: — переход на диск D:
Обратите внимание, что в последнем примере мы не пишем команду, а вводим только имя диска и двоеточие.
В приглашении ОС каждый раз после выполнения любой команды выводится имя текущего диска и каталога — если не изменить настройки командной строки.
Задание
— Вызовите справку для команды cd
— Обратите внимание на использование кавычек в команде cd
— Используя команды cd и dir, переходите вверх и вниз по файловому дереву диска с:
— Сделайте зарисовку фрагмента файлового дерева
— Установите текущий диск d:
— Переходите вверх и вниз по файловому дереву диска d:
— Перейдите в каталог C:Program Files с одновременной сменой диска и каталога
— Перейдите в корневой каталог
Команда TREE
Команда tree выводит на экран схематичное изображение дерева каталогов. Английское слово Tree означает «дерево», а также «забраться на дерево». В нашем случае это слово означает «вывести на экран схему дерева файловой системы».
Если не указаны диск или путь, на экран выводится часть дерева, начиная с текущего каталога.
Чтобы прервать вывод на экран, нажмите сочетание клавиш [Ctrl + C].
Примеры:
tree — вывод дерева каталогов всего диска C:
tree c: /f more — постраничный вывод дерева диска C:
Задание
— Вызовите справку для команды tree
— Введите команду tree
— Введите команду tree и нажмите [Ctrl + C]
— Введите команду tree с постраничным выводом
— Сделайте зарисовку части дерева диска C:, начиная с корневого каталога
Команда SET
Команда set (англ. Set — «установите значение, задайте состояние, настройте») позволяет просматривать и изменять переменные (параметры) среды окружения (англ. Environment variables — «переменные окружения»). Имеется в виду среда выполнения программ.
Переменные окружения — это настройки ОС, доступные для прикладных программ в виде текстовых строк в оперативной памяти. Их также называют так: set-параметры.
К переменным окружения обращаются по имени.
Команда set без параметров выводит текущие значения переменных среды окружения, см. рис.
Вот некоторые примеры переменных окружения:
HOMEDRIVE — диск, на котором находится домашний каталог
HOMEPATH — путь к домашнему каталогу
NUMBER_OF_PROCESSORS — число логических процессоров, то есть процессоров, ядер и т. п.
OS — операционная система или семейство ОС
PATH — путь поиска исполняемых файлов
PROMPT — формат приглашения командной строки
USERNAME — имя пользователя
Рис. Параметры окружения
Для обращения к значению переменной окружения используют символ процента. Например, %os% — значение переменной os.
Примеры:
set path=C:Temp;%path% — добавление каталога C:Temp в путь поиска
echo %os% — вывод на экран значения переменной OS
Задание
— Выведите полный список переменных окружения
— Определите число «процессоров»
— Определите тип операционной системы
— Выясните в Википедии, что такое Windows NT
— Определите имя пользователя
— Выведите путь для поиска
— Добавьте каталог d: в путь для поиска
— Выведите путь для поиска
— Выведите полный список переменных окружения
— Убедитесь, что значение переменной path изменилось
Команда PATH
Команда path (англ. Path — «путь») устанавливает путь для поиска исполняемых файлов. Если при запуске приложения полный путь к файлу не указан, ОС пытается найти исполняемый файл в текущем каталоге, а затем просматривает пути к каталогам из заранее заданного списка path.
Список путей для поиска хранится в переменной среды окружения PATH. Для просмотра списка путей используется команда path без параметров.
Примеры:
path — выводит список путей
path c:usr; d:bin — задание двух путей для поиска
path %path%; d:s — добавляет каталог d:s к пути поиска
Изменение set-параметров из командной строки действует только для текущего командного окна. После изменения путей для поиска ОС не сможет выполнять некоторые команды. Для восстановления работоспособности закройте текущее командное окно и откройте новое.
Задание
— Выведите список путей поиска
— Добавьте каталог c:1 в список путей
— Выведите список путей поиска
— Убедитесь, что каталог добавлен в список
Создание файлов
Обычно системный администратор ограничивает права рядового пользователя — чтобы тот не испортил работающую систему.
Например, пользователю могут запретить создание файлов в корневом каталоге диска c:. Рекомендуется проводить опыты с файлами на другом диске в своём каталоге, например d:sidorov.
Для создания текстовых файлов в командной строке можно использовать два способа.
Способ 1. Копирование ввода с клавиатуры в файл:
copy con file. txt
При выполнении этой команды данные с клавиатуры записываются в указанный файл. Для завершения ввода текста нажмите комбинацию [Ctrl + Z], а затем [Enter].
con (англ. Console — «Консоль») — устройство стандартного ввода-вывода информации. «Стандартный ввод» выполняется с клавиатуры, а «стандартный вывод» — на экран.
Способ 2. Перенаправление стандартного вывода:
echo текст> file. txt
Команда echo (англ. Echo — «эхо») выводит текст, напечатанный после команды, на экран.
Символ «больше» направляет вывод вместо экрана в файл. В результате, при выполнении этой команды будет создан файл file. txt, который будет содержать в себе текст, напечатанный после команды echo.
Задание
— Просмотрите в Википедии статью Консоль, которая относится к компьютерам
— Создайте на рабочем диске свой рабочий каталог и назовите его своей фамилией
— Перейдите в свой рабочий каталог
— Создайте текстовый файл a. txt с помощью копирования с консоли в файл.
— Создайте текстовый файл b. txt с помощью перенаправления стандартного вывода.
Вывод на экран
Команда type выводит на экран содержимое текстового файла (например, *.txt или *.bat), например:
type f. txt
Можно также выполнить копирование файла на экран (устройство стандартного вывода, консоль), например
copy f. txt con
Задание
— Выведите на экран файл a. txt командой type
— Выведите на экран файл b. txt командой copy
Команда COPY
Команда copy (англ. copy — «скопируйте, создайте копию») используется, чтобы скопировать один или несколько файлов. Первый параметр команды — исходный файл (источник). Второй параметр — результат копирования (каталог или новый файл). Например, команда copy f1.txt d:t копирует файл f1.txt в каталог d:t.
Для объединения нескольких файлов в один файл между именами файлов ставится знак +. Например команда
copy f1+f2+f3 f4
объединяет файлы f1, f2 и f3 в файл f4
Второй параметр команды может содержать имя файла или путь к файлу.
Примеры:
copy 1.txt 2.txt — копирование файла 1.txt в файл 2.txt в текущем каталоге. Если файл с именем 2.txt уже существует в этом каталоге, то его содержимое заменяется содержимым файла 1.txt. Перед копированием ОС запрашивает согласие пользователя на замену существующего файла.
copy 1.txt d:t2.txt — копирование файла 1.txt в файл 2.txt в каталоге d:t
Звездочка * заменяет любой символ или несколько символов в названии файла. Например, команда copy *.txt d: копирует все файлы с расширением txt в каталог d:.
Задания
— Скопируйте файл a. txt в каталог d:
— Выведите на экран файл d:a. txt
— Скопируйте файл a. txt в d:z. txt
— Выведите на экран файл d:z. txt
— Скопируйте файл b. txt в файл c. txt
— Выведите на экран файл c. txt
— Скопируйте файл a. txt в файл c. txt
— Выведите на экран файл c. txt
— Скопируйте файлы a. txt и b. txt в файл c. txt
— Выведите на экран файл c. txt
— Скопируйте все файлы типа txt в файл d. txt
— Выведите на экран файл d. txt
Работа с архивами
Архив — это файл, внутри которого упакованы каталоги и файлы. Архиватор — это программа, которая выполняет упаковку и распаковку архивов. Многотомный архив — это большой архив, разбитый на несколько частей. Такие архивы можно записать на несколько дисков или отправить частями по сети.
Самораспаковывающийся архив SFX (SelF-eXtracting archive) — это исполняемый файл *.exe, содержащий архив и программу распаковки. При запуске такого файла производится распаковка архива без использования дополнительной программы-архиватора.
В лабораторной работе используется программа 7-zip — свободно распространяемый архиватор.
Сайт программы:
https://www.7-zip.org/
Чтобы запускать архиватор из командной строки, необходимо добавить в путь поиска каталог C:Program Files7-Zip
При вызове архиватора ему передают команду — первую букву английского слова, например
add
list
extract
Примеры использования архиватора:
7z a x1 b. txt — упаковка файла b. txt в архив x1.7z
7z l 1.7z — вывод списка файлов из архива 1.7z
7z e 1.7z — извлечение файлов из архива 1.7z
7z e 1.7z — od: — извлечение файлов в каталог d:
7z a — sfx rr *.txt — сжатие всех текстовых файлов в самораспаковывающйся архив rr. exe
В описании архиватора используются следующие обозначения. В квадратных скобках даются необязательные параметры. Угловые скобки служат для обозначения параметров. При вводе команды квадратные и угловые скобки не используют. Например, следующее описание
7z <command> [<switches>…] <archive_name> [<file_names>…]
означает, что пользователь может вводить такие команды:
7z a ghjk
7z l ghjk
7z a ghjk a. txt
7z a — sfx ghjk b.doc b. txt
Задания
— Выясните, в каком каталоге находится архиватор 7-zip
— Выведите на экран путь поиска
— Добавьте путь для поиска архиватора
set path=%path%;C:Program Files7-Zip
— Выведите на экран путь поиска
— Убедитесь, что путь добавлен
— Введите команду 7z и прочитайте справку по использованию архиватора
— Выясните назначение и перевод команд a, e, l
— Упакуйте файл с. txt в архив сс.7z
— Сравните размеры исходного и сжатого файлов
— Создайте текстовый файл tt.docx в редакторе MS Word
— Упакуйте файл tt.docx в архив t1.7z
— Сравните размеры исходного и сжатого файлов
— Упакуйте все файлы с расширением *.txt в архив ttt.7z
— Выведите список файлов из архива ttt.7z
— Распакуйте архив ttt.7z в каталог d:
— Убедитесь, что операция выполнена успешно
— Упакуйте файл tt.doc в саморапаковывающийся архив в каталоге d:
— Сравните размеры исходного и сжатого файлов
— Перейдите в каталог d:
— Запустите созданный архивный файл на выполнение
— Убедитесь, что операция выполнена успешно
Перенаправление ввода-вывода
При выполнении программ в командной строке используется так называемый стандартный ввод-вывод. Это стандартные встроенные функции ОС для ввода текста с клавиатуры и вывода текста на экран. Такие действия выполняются, например, при использовании команд printf и scanf в программе на языке C.
Для перенаправления стандартного ввода-вывода используют следующие символы:
> — записать в файл (вместо вывода на экран);
>> — добавить к файлу (вместо вывода на экран);
< — прочитать из файла (вместо ввода с клавиатуры);
— объединить две команды в конвейер (вместо вывода на экран и ввода с клавиатуры).
Стандартный ввод
Если в параметрах командной строки не указано имя файла, то команда принимает данные с клавиатуры. Например, команда sort сортирует текстовые строки по алфавиту. Команда sort без параметров сортирует текст, вводимый с клавиатуры до нажатия [Ctrl+Z] и [Enter]. Команда sort f. txt сортирует текст из файла f. txt. Команда dir> f. txt отправляет список файлов в файл f. txt вместо вывода на экран. Команда dir>> f. txt дописывает список файлов в конец файла f. txt, если этот файл уже существует.
Конвейер
При организации конвейера стандартный вывод первой команды (вместо вывода на экран) направляется на стандартный ввод второй команды (вместо чтения с клавиатуры). Например, конвейер dir sort создает список файлов, сортирует его и выводит на экран.
Команда more организует постраничный вывод на экран. При организации конвейера в виде tree more, команда more перехватывает вывод на экран результатов работы команды tree и выводит длинный текст по страницам. При работе с командой more для вывода на экран следующей строки нажимают [Enter], для вывода следующей страницы — пробел [Space], для выхода из страничного просмотра — клавишу [Q] (англ. Quit — «выйти»).
Задания
— Вызовите команду dir и запишите результаты в файл d4.txt
— Выведите файл d4.txt на экран
— Вызовите команду ver и добавьте результаты к файлу d4.txt
— Выведите файл d4.txt на экран
— Выведите файловое дерево в постраничном режиме
Пакетные файлы
Пакетный файл — это текстовый файл с расширением *.bat (англ. Batch — «пакет»). В пакетном файле записывают последовательность команд ОС. Имеется также возможность составления несложных программ.
Хотя пакетный файл содержит текст, он является исполняемым файлом. Чтобы запустить пакетный файл из командной строки, нужно ввести его имя и нажать [Enter]. При этом расширение указывать не обязательно.
Для запуска файла или команды в отдельном окне используется команда start, например:
start dir
Задание
— Выведите справку по команде date
— Командой echo создайте пакетный файл da.bat, в котором содержится команда вывода на экран текущей даты
— Запустите файл da.bat на выполнение, указав расширение
— Запустите файл da.bat на выполнение, не указав расширение
— Запустите файл da.bat на выполнение в отдельном окне
— Перейдите в корневой каталог диска D:
— Запустите на исполнение файл da.bat без указания пути
— Ознакомьтесь с сообщением ОС
— Добавьте к пути поиска полный путь к каталогу, где находится файл da.bat
— Убедитесь, что путь поиска изменен
— Запустите на исполнение файл da.bat без указания пути
— Убедитесь, что файл успешно запущен
Работа с файлами и каталогами
Для создания каталогов используется команда mkdir (англ. Make Directory — «Создайте каталог»).
Для удаления каталогов используется команда rmdir (англ. Remove Directory — «Удалите каталог»).
Для удаления фалов используется команда del (англ. Delete — «Удалите»).
Задания
— Вызовите справку по mkdir
— Создайте каталог (в названии используйте номер группы)
— Перейдите в новый каталог
— Создайте каталог (в названии используйте фамилию)
— Перейдите в новый каталог
— Создайте текстовый файл
— Вызовите справку по del
— Удалите текстовый файл
— Поднимитесь на один уровень вверх по файловому дереву
— Вызовите справку по rmdir
— Удалите каталог
— Создайте каталог
— Поднимитесь на один уровень вверх по файловому дереву
— Удалите каталог
Управление процессами
Процесс — это программа, которая выполняется на компьютере. Пока программа хранится на диске, это файл. Когда она запущена на выполнение, это процесс. Процессы находятся в оперативной памяти, а не на диске.
Для вывода списка процессов используется команда tasklist (англ. Task List — «Составьте список задач (процессов)»).
Для остановки выполнения процесса используется команда taskkill (англ. Task Kill — «Убейте задачу, остановите выполнение указанного процесса»).
Для остановки процесса требуется указать идентификатор процесса PID (англ. Process Identifier — «Идентификатор процесса»). PID — это «уникальное» целое число, назначенное каждому процессу. У всех процессов эти номера разные.
Задание
— Выведите на экран список процессов
— Определите, какой процесс занимает больше всего памяти
— Определите номер процесса cmd. exe
— Запустите второе командное окно
— Выведите список процессов
— Определите номер второго процесса cmd. exe
— Определите, сколько памяти занимает каждый процесс cmd. exe
Конец ознакомительного фрагмента.