Меню Закрыть

Cmd получить текущий каталог

Содержание

Далее кратко описаны полезные возможности, которые можно использовать в командных файлах (*.bat;*.cmd aka батники) операционных систем Windows 2000, XP, 2003 и более поздних.

В этих операционных системах введены существенные расширения возможностей сценариев командной строки, которые позволяют делать, например, следующие вещи:

  • определение для файла полного и короткого пути к нему, имени, расширения, размера, времени модификации
  • выборочная итерация по файлам и каталогам с применением различных команд
  • расширенное перенаправление потоков ввода/вывода
  • использование переменных, вычисление арифметических выражений, манипуляции со подстроками
  • расширенная обработка условий
  • . многое другое

Более подробную помощь нежели в данном обзоре можно найти в стандартной справке в каталоге Windows.
(Типичный путь к файлу справки: C:WINDOWSHelp
tcmds.chm. Если Windows установлена в каталог, отличный от C:WINDOWS, то ссылки на справку из данной страницы работать не будут. Потребуется открыть справку самостоятельно.)
В частности, крайне полезно почитать следующие разделы:

Справку по конкретной команде также всегда можно получить набрав в командной строке » /?«.
Например, очень познавательно почитать то, что выдается в результате команд set /?, call /?, for /?, if /?.

Помощь приводится на языке установленной операционной системы.

Например, после вызова будем иметь следующую картину:

Параметр Значение
%0 d:deltalngscompile_all.cmd
%1 sol.dpr
%2 . (точка)
%3,%4,%5 и т.д. (пусты)
%* sol.dpr .

Современные ОС используют расширенный режим обработки параметров, в котором доступны следующие модификаторы:

Модификатор Описание
расширение %1 и удаление любых кавычек («»)
замена %1 полным путем
замена %1 именем диска
замена %1 путем без диска и имени файла
замена %1 именем файла без расширения
замена %1 расширением имени файла
замена полным путем, содержащим только короткие имена
замена %1 атрибутами файла
замена %1 датой и временем модификации файла
замена %1 размером файла
Поиск в каталогах, перечисленных в переменной среды PATH, замена %1 полным именем первого найденного файла. Если переменная среды не определена или поиск не обнаружил файлов, модификатор выдает пустую строку.

Описанные модификаторы можно применять в различных сочетаниях для всех параметров. Например:

Модификатор Описание
полный путь (включая завершающий слэш) к каталогу выполняемого скрипта
имя файла первого параметра с расширением
размер файла второго параметра
замена %1 строкой, аналогичной результату работы программы dir
Проверка условий

Проверка существования файла:
if [not] exist имя_файла команда [else выражение]
Например: if exist $result$.txt del $result$.txt

Проверка кода возврата:
if [not] errorlevel число команда [else выражение]
Условие верно, если предыдущая обработанная команда завершилась с кодом, равным или большим значения число.
Например:

Использование меток

Есть также особый вариант команды call для повторного вызова текущего скрипта с заданной метки с определенными параметрами.

Запуск команд

Инструкция «cmd команда» запускает системный пакетный обработчик cmd.exe для выполнения команды команда.
Если вызов происходит из консоли, то используется имеющаяся, если нет — создается новая.
Ключи /c и /k указывают, что по завершении исполнения консоль нужно закрыть или оставить, соответственно.

Инструкция «start команда» запускает обработку команды команда в отдельном параллельном процессе.
Соответствующие ключи позволяют изменять приоритет запускаемого процесса.
Ключ /wait указывает, что запустившему процессу следует дождаться завершения запущенного.

Запускать новые командные сценарии из командных сценариев можно также двумя способами.
Первый: Второй:

Код возврата команд

Команда exit число прерывает исполнение текущего сценария с возвратом запустившему его процессу заданного кода выхода. По умолчанию производится прерывание сразу всей цепочки вызовов пакетных сценариев. Если необходимо завершить только текущий сценарий и возвратить управление в сценарий, вызвавший его командой call, то нужно использовать ключ /b команды exit. Для выхода из сценария с передачей вызвавшему процессу текущего значения %errorlevel% необходимо использовать команду goto :eof.

Некоторые команды всегда устанавливают переменную %errorlevel%, некоторые модифицируют ее только при возникновении ошибок, а некоторые вообще ее никогда не меняют.
Вот пример:

Копирование

Проверить, удачно ли выполнилась команда можно по коду возврата %errorlevel%.

Использование нескольких команд и символов условной обработки

Можно выполнять несколько команд из одной командной строчки с помощью символов условной обработки, перечисленных в следующей таблице.

Символ Синтаксис Определение
& [. ] команда1 & команда2 Выполняется первая команда, затем вторая команда.
&& [. ] команда1 && команда2 Вторая команда выполняется, только если первая была выполнена успешно.
|| [. ] команда1 || команда2 Вторая команда выполняется, только если первая не была выполнена (полученный код ошибки превышает ноль).
( ) [. ] ( команда1 & команда2 ) Используется для группировки или вложения команд.
; или , команда1 параметр1 ; параметр2 Используется для разделения параметров команды.

Примечание:
Амперсанд &, вертикальная черта | и скобки () являются специальными символами, которым должен предшествовать управляющий символ ^ или кавычки, если эти символы передаются в качестве аргументов.

Вот пример специализированного скрипта для сравнения файлов:

Использование переменных среды

Глобальные переменные устанавливаются в свойствах операционной системы или специальной внешней утилитой setx и доступны с одними и теми же значениями при запуске всех пакетных файлов.

Локальные переменные устанавливаются и используются по-своему в каждом отдельном сценарии, сохраняются только во время его выполнения, а также передаются в дочерние сценарии при вложенных вызовах.

Читайте также:  Программа для записи подкастов

Псевдопеременные, такие как %CD%, %DATE%, %TIME%, %RANDOM%, %ERRORLEVEL%, обрабатываются особенным образом в зависимости от определенных условий.

В следующей таблице приведен выборочный список наиболее интересных переменных среды.

ЛокальнаяВозвращает имя пользователя, выполнившего вход в систему.

Переменная Тип Описание
Локальная Возвращает путь к текущей папке.
Системная Возвращает имя компьютера.
Системная Возвращает текущую дату. Использует тот же формат, что и команда date /t .
Системная Возвращает код ошибки последней использовавшейся команды.
Системная Указывает путь поиска для исполняемых файлов.
Системная Возвращает произвольное десятичное число от 0 до 32767.
Системная Возвращает размещение системного каталога Windows.
и Системная и пользовательская Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.
Системная Возвращает текущее время. Использует тот же формат, что и команда time /t .

При использовании переменных можно также использовать выделение подстрок.

Конструкция Назначение
%PATH:

10,5%

расширит действие переменной среды PATH, затем использует только 5 символов, которые начинаются с 11-го символа (пропустив 10) расширенного результата. Если длина не указана, по умолчанию используется оставшееся значение переменной. Если оба значения (длина и число пропускаемых символов) отрицательны, следующим используемым значением будет длина значения переменной среды, добавленной к указанному значению пропуска или указанной длины.

%PATH:

-10%

извлечет последние 10 символов переменной PATH

%PATH:

0,-2%

извлечет все символы переменной PATH, за исключением 2-х последних

Для установки значений переменных используется команда set.
Установка значений:
set переменная=значение
Показ значений:
set переменная
Показ значений всех переменных:
set (без параметров)
Проверка наличия переменной с заданным именем:
if defined переменная команда

Вычисление арифметических выражений

В следующей таблице представлены арифметические операторы, поддерживающие параметр /a , в порядке убывания приоритета.

Оператор Действие оператора
() группировка
!

унарные операторы

* / %арифметические операторы+ -арифметические операторы>двоичный сдвиг&двоичное И^двоичное исключающее ИЛИ|двоичное ИЛИприсваивание,разделитель операторов

При использовании символов & | % ^ заключайте выражение в кавычки.
Любые нечисловые строки в выражении считаются именами переменной среды, чьи значения преобразуются в числа до обработки. Если указано имя переменной среды, которое не определено в текущем окружении, ей присваивается значение нуля, что позволяет выполнять арифметические операции со значениями переменной среды без использования % для получения значения.

Пример использования вычисления выражений:

Потоки ввода/вывода

Потоки используются в командных сценариях для унифицированного распределения и перенаправления ввода/вывода.

В следующей таблице представлены стандартные потоки.

Поток Номер дескриптора Описание
STDIN Стандартный ввод (только чтение)
STDOUT 1 Стандартный вывод (только запись)
STDERR 2 Вывод ошибок (только запись)

Каждый поток может быть связан с каким-либо устройством ввода/вывода.

В следующей таблице представлены стандартные устройства.

Устройство Описание
CON Консоль (чтение с клавиатуры и вывод на экран)
NUL Пустота
PRN Принтер

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

В следующей таблице описаны операторы перенаправления, применимые к потокам и устройствам.

Оператор перенаправления Описание
> Перенаправление вывода с затиранием.
Перенаправление ввода.
>> Перенаправление вывода с добавлением.
>& Считывает данные на выходе одного потока как входные данные для другого потока.
Считывает входные данные одного потока как выходные данные другого потока.
| Считывает выходные данные одной команды и записывает их на вход другой команды. Эта процедура известна под названием «канал».

Некоторые команды, такие как find, sort, more, называются фильтрами, т.к. они занимаются специализированной трансформацией входного потока в выходной.

Далее приведены некоторые примеры.

Типичный вызов при тестировании программистских задач.
(Ввод из input.txt, вывод в output.txt, вывод ошибок в никуда).

Вызов скрипта компиляции с перенаправлением потоков вывода и ошибок на дописывание в файл compile.log.

Дописывание содержимого одного файла в конец другого.

Поэкранный вывод списка элементов текущего каталога.

Поэкранный вывод имен всех фидошников города Гомеля, отсортированных по алфавиту.

Организация циклов

Команда for позволяет произвести запуск некоторой команды для каждого элемента из заданного множества.
Синтаксис:

Параметры: < % переменная | %% переменная >Обязательный параметр. Замещаемый параметр. Используйте % переменная для выполнения команды for из командной строки. В пакетных файлах для команды FOR используется запись %%переменная вместо %переменная. Имена переменных учитывают регистр букв (%i отличается от %I). ( множество ) Обязательный параметр. Задает один или несколько файлов, каталогов, диапазон значений или текстовых строк, подлежащих обработке заданной командой. Скобки являются обязательными. команда Обязательный параметр. Задает команду, которая будет выполнена для каждого файла, каталога диапазона значений или текстовой строки, включенной в указанный параметр ( множество ) . ПараметрыКоманднойСтроки Задает параметры командной строки, которые используются с указанной командой.
Подробнее команда описана в справке. Здесь приведены несколько примеров, иллюстрирующих ее возможности.

Перебор фиксированного множества параметров.

Итерация по файлам.

Итерация по каталогам.

Итерация и разбор файлов

Набор содержит имена одного или нескольких файлов, которые по очереди открываются, читаются и обрабатываются. Обработка состоит в чтении файла, разбивки его на отдельные строки текста и выделения из каждой строки заданного числа подстрок (в том числе нуля). Затем найденная подстрока используется в качестве значения переменной при выполнении основного тела цикла. По умолчанию ключ /F выделяет из каждой строки файла первое слово, очищенное от окружающих его пробелов. Пустые строки в файле пропускаются. Необязательный параметр «options» служит для переопределения заданных по умолчанию правил обработки строк.
Возможные ключевые слова для этого параметра:

Читайте также:  Gtx 660 vs r7 360
Описание
eol=c Задает символ конца строки (только один символ).
skip=n Задает число строк, пропускаемых в начале файла.
delims=xxx Задает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
Задает элементы, передаваемые из каждой строки в тело цикла for при каждой итерации. В результате размещаются дополнительные имена переменных. Форма m-n задает диапазон, указывающий элементы с m -го по n -ый. Если последним символом строки tokens= является звездочка (*), то размещается дополнительная переменная, в которую помещается остаток строки после разбора последнего элемента.
usebackq Задает возможность использования кавычек для имен файлов в параметре МножествоИменФайлов . Задает исполнение строки, заключенной в обратные кавычки, как команды, а строки в одиночных кавычках — как команды в символьной строке.

Поясняющий пример:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
Эта команда обрабатывает файл myfile.txt, пропускает все строки, которые начинаются с символа точки с запятой, и передает вторую и третью подстроки из каждой строки в тело цикла, причем подстроки разделяются запятыми и/или пробелами. В теле цикла переменная %i используется для второй подстроки, %j — для третьей, а %k получает все оставшиеся подстроки после третьей. Имена файлов, содержащие пробелы, необходимо заключать в двойные кавычки. Для того чтобы использовать двойные кавычки, необходимо использовать параметр usebackq, иначе двойные кавычки будут восприняты как границы строки для обработки.

Синтаксис команды FOR /F также позволяет обработать отдельную строку, с указанием параметра filenameset, заключенным в одиночные кавычки. Строка будет обработана как единая строка из входного файла.

Наконец, команда FOR /F позволяет обработать строку вывода другой команды. Для этого следует ввести строку вызова команды в апострофах вместо набора имен файлов в скобках. Строка передается для выполнения обработчику команд CMD.EXE, а вывод этой команды записывается в память и обрабатывается так, как будто строка вывода взята из файла. Например, следующая команда:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
выведет перечень имен всех переменных среды, определенных в настоящее время в системе.

Еще один пример:

Организация блокировок
Установка цвета консоли

(CopyLeft) Vadim Kopichenko

Иногда в скриптах необходимо использовать путь папки в которой мы находимся в текущий момент. Расположение текущей папки (полный путь) хранится в переменной %CD%

Можно вывести на экран текущую директорию и путь к ней в консоли, например так

Использование системных переменных необходимо при написании командных сценариев для консоли Windows, т.е. bat или cmd файлов.

Значение и названия некоторых других переменных Windows можно узнать выполнив в командной строке (cmd.exe) команду

P.S. иногда можно написать нужный скрипт в пару строк, если правильно использовать структуру, нужные команды и встроенные переменные Windows

Фразы: текущий каталог в скрипте, вывести переменную путь, как узнать каталог в котором выполняется скрипт?

Примерно два десятилетия назад не было никакого меню « Пуск » или панели задач. Дружелюбный графический интерфейс, который мы знаем, тогда не существовал, а вместо него был черный экран с мигающим курсором. Но если нужно получить доступ к некоторым элементам Windows , вам все равно придется открыть командную строку или CMD :


Если вы никогда не использовали командную строку, это руководство поможет вам освоить ее и расскажет о некоторых CMD командах , которые вы должны знать на случай возникновения чрезвычайных ситуаций.

Для доступа к ней в Windows 7 или выше вы можете набрать в панели поиска меню « Пуск » « cmd » или « командная строка ». Также можно найти ее здесь: Меню «Пуск»- Все программы –Стандартные — Командная строка . Полный список параметров каждой из приведенных ниже команд вы можете найти на сайте Microsoft .

Обратите внимание, что команды не чувствительны к регистру и для их выполнения вам нужно нажать Enter .

Основные команды командной строки

DIR — сокращение от Directory , эта CMD команда для новичка выводит список всех файлов и папок в определенном каталоге. А также их размер, расширение и свободное пространство, оставшееся на диске. Команда может быть изменена с помощью дополнительных параметров, таких как DIR /р ( выводит список по страницам ), DIR /q ( выводит информацию о владельце сайта ), DIR /w ( выводит список в расширенном формате с максимальным количеством файлов в одной строке ), DIR / d ( выводит список в расширенном формате с разбивкой на столбцы ), DIR /n ( выводит длинный список одной строкой ), DIR /l ( выводит несортированный список имен каталогов и файлов в нижнем регистре ), DIR /b ( выводит список файлов без дополнительной информации ). DIR /s выводит список файлов и директорий данного каталога, а также всех подкаталогов. Введя DIR/? , вы увидите список всех доступных параметров.

Команда CD или CHDIR ( Change Directory ) предназначена для того, чтобы сменить каталог. Команда выполняет несколько операций. CD перемещает вас на самый верх дерева каталогов. CD .. перемещает вас в родительский каталог по отношению к текущему. CD имя-каталога перемещает вас в этот каталог. Введите CD , чтобы вывести на экран имя текущего каталога.

Читайте также:  Netsh wlan start hostednetwork mode allow ssid

MD или MKDIR ( Make Directory ) позволяет создать каталог ( папку ). Чтобы создать каталог, используйте следующий синтаксис: MD имя-каталога .

CLS очищает экран. Эта команда CMD в Windows применяется, если эмулятор командной строки заполнен перечнем команд и их операций.

EDIT имя-файла позволяет изменять содержимое файла.

Команда DEL позволяет удалить один или несколько файлов. В качестве альтернативы можно использовать команду ERASE . Для удаления файла используйте синтаксис DEL имя-файла .

Если вы хотите удалить все файлы с определенным расширением, то введите DEL *.doc , и из текущего каталога будут удалены все файлы с расширением doc . DEL *.* удаляет все файлы из текущего каталога, поэтому будьте осторожны с этой командой.

RD или RMDIR — вы можете использовать эту команду, чтобы удалить папку, но папка должна быть пустой. Синтаксис довольно прост. Введите RD имя-папки . Если вы хотите удалить папку, которая не является пустой, вы можете использовать RD / S имя-папки . Будьте осторожны с этой командой, так как она удаляет папку и все ее содержимое без возможности восстановления.

RENAME , или REN переименовывает файл или каталог. Синтаксис этой команды CMD управления компьютером следующий: RENAME текущее-имя новое-имя . Например, если вы хотите переименовать файл с именем iPhone.txt в iPad.txt , введите RENAME iPhone.txt iPad.txt .

MOVE позволяет переместить один или несколько файлов из одного каталога в другой. Например, если вы хотите переместить файл 1.txt размещенный в текущей директории в папку с именем Numericals внутри текущего каталога, введите MOVE 1.txt Numericals .
Если вы пытались переименовать директорию ( папку ) с помощью команды RENAME приведенным выше способом, то знаете, что это не работает. В этом нам поможет команда MOVE , так как она также может быть использована для переименования каталогов. Введите MOVE текущее-имя новое-имя, где текущее имя — это имя директории в текущей папке.

Команда COPY позволяет скопировать один или несколько файлов из одного места в другое. Команда позволяет объединять файлы одного и того же типа. Давайте посмотрим на различные примеры применения команды COPY :

  • COPY имя-файла имя-папки скопирует файл имя-файла в уже существующую папку;
  • COPY имя-файла новое-имя-файла создает копию файла с новым именем;
  • COPY *.doc Word копирует все файлы с расширением .doc в папку с именем Word .

CMD основная команда XCOPY предназначена для файлов и каталогов, включая подкаталоги. Простейший вариант ее использования — скопировать все файлы с одного диска на другой. Синтаксис: XCOPY Исходный-диск: Диск-назначения: /e , где параметр /е позволяет копировать все подкаталоги, даже если они пусты. Используйте /s , чтобы запретить копирование пустых директорий. Вы можете использовать имена папок исходного диска или диска назначения, чтобы просто скопировать все содержимое одной папки в другую.

Дополнительные команды

Команда FORMAT в CMD позволяет стереть информацию с винчестера или подготовить его для копирования данных, если вы установили новый диск. Синтаксис для использования команды: FORMAT диск: . Если вы хотите переформатировать конкретный диск под конкретную файловую систему, вы можете сделать это с помощью команды: FORMAT диск: / FS: файловая-система , где файловая-система может быть: FAT , FAT32 или NTFS . После применения команды все данные с диска будут бесследно стерты.

FC — используется для сравнения двух файлов друг с другом. Предположим, у вас есть два файла gadgets360_1.txt и gadgets360_2.txt . Чтобы сравнить их, нужно ввести следующую команду: FC gadgets360_1.txt gadgets360_2.txt .

IPCONFIG выводит подробную информацию о сетевых настройках: IP-адрес , а также сообщает тип сетевого соединения вашего компьютера ( с помощью Wi-Fi или Ethernet ). Введите IPCONFIG / ALL , чтобы получить обзор всех сетевых настроек, включая то, какие DNS-серверы вы используете. Введите IPCONFIG / RENEW , чтобы получить новый IP-адрес с сервера DHCP . Это может помочь, если у вас возникли проблемы с подключением к интернету.

CMD ping команда — если вы не уверены, доступен ли сайт, который вы хотите посетить, введите PING , за которым следует IP-адрес или доменное имя. Например, PING google.com . Если на экране появится надпись Destination Net Unreachable , возможно, у вас отсутствует подключение к интернету. Если появятся сообщения Host is down или Request timeout , сайт может быть недоступен. Если все в порядке, вы должны увидеть что-то похожее на это: 64 bytes from 173.194.36.73: icmp_seq=0 ttl=56 time=118.355 ms .

Команда SHUTDOWN может пригодиться вам, если кнопка « Завершение работы » в меню « Пуск » не работает из-за действия вредоносных программ. Для завершения работы компьютера ( для Windows ) введите Shutdown / S . Чтобы перезапустить компьютер — Shutdown / R .

CHKDSK — CMD команда используется для того, чтобы проверить, может ли ваша операционная система правильно прочитать жесткий диск или любой другой носитель. Синтаксис команды: CHKDSK C : — замените C буквой диска, который нужно проверить. Введите CHKDKS /? чтобы посмотреть другие варианты.

Данная публикация представляет собой перевод статьи « CMD Commands Every Windows User Must Know » , подготовленной дружной командой проекта Интернет-технологии.ру

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.