Механизмы перенаправления команд в командной оболочке Windows
Здравствуйте уважаемые читатели интернет ресурса WindowsFan.Ru!!!
По умолчанию вывод результатов выполнения команд в командной оболочке Windows осуществляется в стандартное окно консоли. Но иногда этого может оказаться недостаточно.
Представьте ситуацию, в которой вам нужно не только получить данные из командной строки, но и поделиться ими с другими пользователями. Допустим, вам потребовалось предоставить список всех файлов и папок в каком-либо каталоге. Вы ведь не станете вручную заносить их названия в текстовый файл или создавать скриншот содержимого каталога.
Для этих целей в командной оболочке Windows предусмотрены механизмы перенаправления. Некоторые из них мы сейчас и рассмотрим. Для решения задачи, о которой говорилось чуть выше можно воспользоваться выводом в файл. Перенаправление в файл осуществляется с помощью символа ">". Например, команда dir > spisok.txt выведет содержимое текущего каталога в текстовый файл с именем spisok. Если файл с указанным именем не существует, он будет создан, а уже существующий будет перезаписан.
Если же вам нужно дописать информацию в файл, не стирая при этом уже имеющиеся данные, вместо одинарного значка ">" используйте двойной символ ">>". Аналогичным образом вы можете выводить в файлы результаты работы других команд.
Напротив, для передачи информации из файла в командной оболочке используется символ "<". Перенаправления можно комбинировать. К примеру, при выполнении строки sort /r меньше OSH.txt > D:spisok.txt командная оболочка получит данные из файла OSH.txt, отсортирует его обратном порядке и сохранит результат в новый файл spisok.txt.
В операционной системе Windows существует и другой тип перенаправления, так называемый piping или конвейеризация. В этом случае результаты выполнения команды передаются не в файл или на принтер, а другой команде. Использование конвейеризации упрощает работу в командной строке, делает ее более удобной, позволяет экономить время.
Символом, служащим для передачи результата является прямая черта "|". Для наглядности приведем пример. Допустим нам нужно получить список всех текстовых файлов находящихся в парке docs.
Пусть это и не самый лучший пример, для этого мы воспользуемся командой find. Однако известно, что эта команда используется для поиска текстовых строк в одном или нескольких файлах.
Как сделать так, чтобы с ее помощью можно было искать сами файлы? Все очень просто, нужно всего лишь передать результат работы команды dir команде find. Для этого переходим в каталог docs, выполняем команду dir | find ".txt" и получаем список всех файлов с расширением TXT.
Коснувшись темы конвейеризации нельзя не упомянуть о другом, не менее важном механизме командной строки – формировании и группировании цепочек команд. В отличие от механизма piping, в цепочках команд ничего не передается, просто все команды выполняются последовательно, одна за другой.
Последовательность команд формируется с помощью знака "||", амперсандов, скобок и также может служить для упрощения работы в командной строке.
В вышерассмотренном примере чтобы вытащить из папки docs текстовые файлы мы сначала переходили в эту папку, а затем уже производили поиск. А теперь сделаем так: cd C:docs & dir | find ".txt". Как видите результат тот же, но на этот раз мы обошлись всего одной строкой.
Командная строка Windows обладает поистине огромными возможностями, однако для большинства пользователей она по-прежнему остается тайной за семью печатями. Можно было привести и еще более сложные примеры использования цепочек команд, с проверками корректности выполнения отдельных звеньев, с применением условий, но думаем на сегодня этого достаточно ).
На этом пока все всем пока и до новых познавательных встреч с вами дорогие друзья...
Очень сложный этот механизм но благодаря стараниям ваших писателей и редакторов для меня постоянное мучение в этой сфере наконецто закончилось. Оказывается когда все хорошо раскажут то все что раньше казалось таким сложнвм таковым не является. Все расписано до мелочей и расказано для самых чайников, ну я хоть таковым себя не считаю но очень долго не понимал этой системы. Я вам безконечно благодарен за вашу работу и помощь таким юзнрам как я, сайт просто бомба.
Очень полезная и нужная статья. Когда-то, во времена MS-DOS, многие помнили подобные команды практически наизусть, потому что без них на нормальную работу компьютера нечего было и рассчитывать.
А вот в настоящее время, пользователи как-то реже стали пользоваться командной оболочкой. И я думаю, что зря. Потому что подобные знания не только могут пригодиться в экстренных случаях, но и способны существенно упростить решение тех или иных задач, как и показывают приведенные в статье полезные примеры.
Да и вообще, команды имеют свойство "вылетать" из памяти, если ими долго не пользоваться, поэтому очень полезно иногда вспоминать их и использовать их на практике.
Благодаря тому, что постоянно посещаю страницы windowsfan.ru, многому научилась. Хоть иногда и приходится информацию перечитывать по несколько раз, так как во всех тонкостях работы с ОС разобраться довольно не просто. Но здесь, похоже, и рассчитано на таких "знатоков", как я, за что автору огромная благодарность.
Информация этой статьи для меня сейчас очень актуальна. Как раз занимаюсь передачей текстовых файлов по заданию моего работодателя, и теперь на поиск уходит почти вдвое меньше времени. Так что буду дальше изучать возможности работы с командной строкой.
С огромным удовольствием читаю статьи на вашем сайте! Ведь вы просвещаете нас в том , о чём компьютерщики предпочитают молчать, ведь это их заработок. Раньше приходилось по всякой мелочи вызывать компьютерного мастера, платить немалые деньги за ремонты. Сейчас, с помощью ваших статей всеми компьютерными неполадками можно заниматься самому. Никогда бы не рискнул самостоятельно переносить информацию с жёсткого диска. А теперь, прочитав статью, понял, что сложностей в этом деле никаких. Спасибо огромное за подробную пошаговую инструкцию для выполнения этой важной операции. Ваш сайт очень понравился огромным количеством полезной информации, теперь я стану постоянным читателем и еще раз спасибо.